1456 lines
38 KiB
Lua
1456 lines
38 KiB
Lua
local f0_local0 = module
|
|
local f0_local1, f0_local2 = ...
|
|
f0_local0( f0_local1, package.seeall )
|
|
CoD.PrintModuleLoad( _NAME )
|
|
function CreateSquadAction( f1_arg0, f1_arg1 )
|
|
Cac.SetEditSquadMember( Cac.GetActiveSquadMember( f1_arg1.controller ) )
|
|
LUI.FlowManager.RequestAddMenu( f1_arg0, "cac_edit_main", true, f1_arg1.controller, false, {
|
|
open_char_list = true,
|
|
classLocation = "loadouts",
|
|
squadLocation = "squadMembers",
|
|
squadMemberIndex = Cac.GetEditSquadMember(),
|
|
allowMemberSwap = true
|
|
} )
|
|
end
|
|
|
|
function BarracksAction( f2_arg0, f2_arg1 )
|
|
if Engine.IsUserAGuest( f2_arg1.controller ) then
|
|
LUI.FlowManager.RequestPopupMenu( f2_arg0, "popup_no_guest", true, f2_arg1.controller )
|
|
else
|
|
LUI.FlowManager.RequestAddMenu( f2_arg0, "menu_barracks", true, f2_arg1.controller )
|
|
end
|
|
end
|
|
|
|
function LobbyLeaderboardAction( f3_arg0, f3_arg1 )
|
|
if Engine.IsUserAGuest( f3_arg1.controller ) then
|
|
LUI.FlowManager.RequestPopupMenu( f3_arg0, "popup_no_guest", true, f3_arg1.controller )
|
|
else
|
|
local f3_local0 = nil
|
|
if Engine.IsAliensMode() then
|
|
f3_local0 = Leaderboards.GetAlienCoopLeaderboardByMapName( Engine.GetDvarString( "ui_mapname" ) )
|
|
else
|
|
f3_local0 = Leaderboards.GetLeaderboardByGameType( Engine.GetDvarString( "ui_gametype" ) )
|
|
end
|
|
assert( f3_local0 ~= nil )
|
|
LUI.FlowManager.RequestPopupMenu( f3_arg0, "mp_leaderboard_main", true, f3_arg1.controller, false, {
|
|
leaderboardType = f3_local0,
|
|
filterType = "LobbyMembers",
|
|
isPublicLobbyLeaderboard = true
|
|
} )
|
|
end
|
|
end
|
|
|
|
function LivePublicLobbyMenuCreate( f4_arg0, f4_arg1 )
|
|
if SvS.IsSvS() then
|
|
LUI.FlowManager.RequestSetStack( f4_arg0, {
|
|
{
|
|
name = "mp_main_menu"
|
|
},
|
|
{
|
|
name = "squads_mode_select_menu"
|
|
},
|
|
{
|
|
name = "menu_xboxlive"
|
|
}
|
|
} )
|
|
else
|
|
LUI.FlowManager.RequestSetStack( f4_arg0, {
|
|
{
|
|
name = "mp_main_menu"
|
|
},
|
|
{
|
|
name = "menu_xboxlive"
|
|
}
|
|
} )
|
|
end
|
|
local f4_local0 = Engine.GetFirstActiveController()
|
|
f4_arg0:dispatchEventToRoot( {
|
|
name = "lobby_update_title",
|
|
immediate = true
|
|
} )
|
|
if SvS.GetCurrentSquadModeInfo() == SvS.SquadModes.SquadAssault then
|
|
f4_arg0:dispatchEventToRoot( {
|
|
name = "member_list_refresh",
|
|
dispatchChildren = true
|
|
} )
|
|
end
|
|
if Engine.GetDvarBool( "squad_match" ) and Engine.GetDvarBool( "squad_find_match" ) then
|
|
Squad.FindMatch( f4_local0 )
|
|
Engine.SetDvarBool( "squad_find_match", false )
|
|
if SvS.IsSvS() then
|
|
Engine.SetDvarInt( "pt_gameStartTimerLength", 10 )
|
|
end
|
|
end
|
|
if Engine.GetDvarBool( "squad_match" ) and Engine.GetDvarBool( "squad_send_results" ) then
|
|
SvS.CachePostMatchData( {
|
|
enemyName = Squad.GetEnemySquadOwnerName(),
|
|
enemySquadName = Squad.GetEnemySquadName(),
|
|
enemyPlayercard = {},
|
|
enemyPlayercard = 0,
|
|
enemyPlayercard = 0,
|
|
enemyPlayercard = 0,
|
|
enemyPlayercard = "",
|
|
enemyPlayercard = 0
|
|
} )
|
|
Engine.SetDvarBool( "squad_send_results", false )
|
|
end
|
|
if not Engine.IsAliensMode() then
|
|
for f4_local1 = 0, Engine.GetMaxControllerCount() - 1, 1 do
|
|
if Engine.HasActiveLocalClient( f4_local1 ) then
|
|
Cac.SyncPrestigeLevel( f4_local1 )
|
|
end
|
|
end
|
|
end
|
|
TryForceOpenAfterActionReport( f4_arg0, f4_arg1 )
|
|
if Engine.IsCoreMode() then
|
|
Engine.ExecNow( "eliteclan_refresh", f4_local0 )
|
|
end
|
|
Engine.ExecNow( "upload_playercard", f4_local0 )
|
|
Lobby.EnteredLobby()
|
|
f4_arg0:processEvent( {
|
|
name = "check_button_disable_status",
|
|
dispatchChildren = true
|
|
} )
|
|
f4_arg0:processEvent( {
|
|
name = "update_double_xp_icon"
|
|
} )
|
|
Cac.ValidateAllPlayersPublicSquadMembers()
|
|
end
|
|
|
|
function LivePublicLobbyMenuSpeechHandler( f5_arg0, f5_arg1 )
|
|
if Engine.HasSpeechFeature() then
|
|
LUI.Speech.ProcessActionEvent( f5_arg0, f5_arg1, Kinect.LobbySpeechGrammarHandlersArray )
|
|
end
|
|
end
|
|
|
|
function RequestExitPublicLobby( f6_arg0, f6_arg1 )
|
|
if Engine.HasSpeechFeature() and LUI.MenuAutoNav.IsRunning() then
|
|
LUI.mp_menus.mpLobbyWidgets.leaveLobbyAndPartyYesActionWithExitLobby( f6_arg0, f6_arg1 )
|
|
elseif IsOurPrivatePartyHostInLobby() then
|
|
LUI.FlowManager.RequestPopupMenu( f6_arg0, "leavelobbyandpartywarning", true, f6_arg1.controller, false, {} )
|
|
else
|
|
LUI.FlowManager.RequestPopupMenu( f6_arg0, "leavelobbywarning", true, f6_arg1.controller, false, {} )
|
|
end
|
|
end
|
|
|
|
function ExitPublicLobby( f7_arg0, f7_arg1 )
|
|
f7_arg0:dispatchEventToRoot( {
|
|
name = "exit_public_lobby"
|
|
} )
|
|
end
|
|
|
|
function VoteForMap( f8_arg0, f8_arg1, f8_arg2 )
|
|
local f8_local0 = assert
|
|
local f8_local1
|
|
if f8_arg2 ~= MapVoting.MapA.voteIndex and f8_arg2 ~= MapVoting.MapB.voteIndex then
|
|
f8_local1 = false
|
|
else
|
|
f8_local1 = true
|
|
end
|
|
f8_local0( f8_local1 )
|
|
if Engine.GetMilliseconds then
|
|
f8_local0 = LUI.FlowManager.GetMenuScopedDataFromElement( f8_arg0 )
|
|
if f8_local0.voteDelayEndTime and f8_local0.voteDelayEndTime > Engine.GetMilliseconds() then
|
|
f8_arg0:dispatchEventToRoot( {
|
|
name = "set_button_info_text",
|
|
text = Engine.Localize( "@PATCH_MENU_WAIT_TO_VOTE", f8_local0.voteCount or 1 )
|
|
} )
|
|
return
|
|
elseif not f8_local0.voteCount then
|
|
f8_local0.voteCount = 1
|
|
elseif f8_local0.voteCount < 6 then
|
|
f8_local0.voteCount = f8_local0.voteCount + 1
|
|
end
|
|
f8_local0.voteDelayEndTime = Engine.GetMilliseconds() + 1000 * f8_local0.voteCount
|
|
end
|
|
Engine.Exec( "xpartyvote " .. f8_arg2, f8_arg1 )
|
|
end
|
|
|
|
function GetLobbyLeaderboardStatus()
|
|
local f9_local0 = Engine.GetDvarString( "ui_gametype" )
|
|
local f9_local1 = Engine.GetDvarString( "ui_mapname" )
|
|
local f9_local2 = false
|
|
for f9_local6, f9_local7 in pairs( Leaderboards.Boards ) do
|
|
if Engine.IsAliensMode() then
|
|
if f9_local7.isAlienCoop and f9_local7.MapName and f9_local7.MapName == f9_local1 then
|
|
f9_local2 = true
|
|
break
|
|
end
|
|
end
|
|
if f9_local7.GameType and f9_local7.GameType == f9_local0 then
|
|
f9_local2 = true
|
|
break
|
|
end
|
|
end
|
|
return f9_local2 and Engine.GetDvarInt( "party_matchedPlayerCount" ) <= Engine.GetDvarInt( "party_partyPlayerCountNum" )
|
|
end
|
|
|
|
function CheckLobbyLeaderboardStatus( f10_arg0, f10_arg1 )
|
|
if GetLobbyLeaderboardStatus() then
|
|
f10_arg0:processEvent( {
|
|
name = "enable"
|
|
} )
|
|
else
|
|
f10_arg0:processEvent( {
|
|
name = "disable"
|
|
} )
|
|
end
|
|
end
|
|
|
|
function ReadyUpAction( f11_arg0, f11_arg1 )
|
|
if Lobby.UsingReadyUpFeature() and not Lobby.GetLocalReadyUpFlag() then
|
|
Lobby.SetLocalReadyUpFlag()
|
|
f11_arg0:dispatchEventToRoot( {
|
|
name = "refresh_ready_up"
|
|
} )
|
|
end
|
|
end
|
|
|
|
function GetReadyUpDisableValue()
|
|
if not Lobby.UsingReadyUpFeature() then
|
|
return true
|
|
elseif not Lobby.GetLocalReadyUpFlag() then
|
|
return false
|
|
else
|
|
return true
|
|
end
|
|
end
|
|
|
|
function GetReadyUpDisplayString( f13_arg0, f13_arg1 )
|
|
if Lobby.UsingReadyUpFeature() then
|
|
if not Lobby.GetLocalReadyUpFlag() then
|
|
return Engine.Localize( "@LUA_MENU_READY_UP_CAPS" )
|
|
end
|
|
local f13_local0 = Engine.GetDvarInt( "party_minplayers" )
|
|
local f13_local1 = Lobby.GetMemberCount( Lobby.MemberListStates.Lobby )
|
|
local f13_local2 = 0
|
|
for f13_local3 = 1, f13_local1, 1 do
|
|
if Lobby.IsActiveMemberSlot( f13_local3 - 1 ) then
|
|
f13_local2 = f13_local2 + 1
|
|
end
|
|
end
|
|
if f13_local2 < 1 then
|
|
return Engine.Localize( "@MENU_WAITING" )
|
|
end
|
|
local f13_local3 = f13_local0 - f13_local2
|
|
if f13_local3 == 1 then
|
|
return Engine.Localize( "@LUA_MENU_WAITING_FOR_1_MORE_PLAYER_CAPS" )
|
|
elseif f13_local3 > 1 then
|
|
return Engine.Localize( "@LUA_MENU_WAITING_FOR_MORE_PLAYERS_CAPS" )
|
|
elseif not Lobby.GetPartyReadyUpStatus() then
|
|
return Engine.Localize( "@LUA_MENU_WAITING_FOR_OTHER_PLAYERS_CAPS" )
|
|
end
|
|
return Engine.Localize( "@LUA_MENU_WAITING_FOR_GAME_TO_START_CAPS" )
|
|
else
|
|
return Engine.Localize( "@MENU_WAITING" )
|
|
end
|
|
end
|
|
|
|
function GetReadyUpDescText( f14_arg0, f14_arg1 )
|
|
if Lobby.UsingReadyUpFeature() then
|
|
if not Lobby.GetLocalReadyUpFlag() then
|
|
return Engine.Localize( "@LUA_MENU_DESC_READY_UP" )
|
|
elseif not Lobby.GetPartyReadyUpStatus() then
|
|
return Engine.Localize( "@LUA_MENU_DESC_WAITING_FOR_OTHER_PLAYERS" )
|
|
end
|
|
end
|
|
return Engine.Localize( "@LUA_MENU_DESC_LOCKED_WAITING_FOR_PARTY_MEMBERS" )
|
|
end
|
|
|
|
function UpdateReadyUpText( f15_arg0, f15_arg1 )
|
|
if GetReadyUpDisableValue( f15_arg0, f15_arg1 ) then
|
|
if not f15_arg0.disabled then
|
|
f15_arg0:processEvent( {
|
|
name = "disable"
|
|
} )
|
|
end
|
|
elseif f15_arg0.disabled then
|
|
f15_arg0:processEvent( {
|
|
name = "enable"
|
|
} )
|
|
end
|
|
f15_arg0:setText( GetReadyUpDisplayString( f15_arg0, f15_arg1 ) )
|
|
end
|
|
|
|
function RefreshButtonDisable( f16_arg0, f16_arg1 )
|
|
assert( f16_arg0.properties.disabledFunc )
|
|
local f16_local0 = f16_arg0.properties.disabledFunc()
|
|
if f16_local0 and not f16_arg0.disabled then
|
|
f16_arg0:processEvent( {
|
|
name = "disable"
|
|
} )
|
|
elseif not f16_local0 and f16_arg0.disabled then
|
|
f16_arg0:processEvent( {
|
|
name = "enable"
|
|
} )
|
|
end
|
|
end
|
|
|
|
function CheckSquadCompareDisabled()
|
|
return not Squad.FoundMatch()
|
|
end
|
|
|
|
function LivePublicLobbyOptionsFeeder( f18_arg0 )
|
|
local f18_local0 = Lobby.GetVoteMapName( MapVoting.MapA.refNum )
|
|
local f18_local1 = Lobby.GetVoteMapName( MapVoting.MapB.refNum )
|
|
local f18_local2 = Lobby.GetVoteMapImage( MapVoting.MapA.refNum )
|
|
local f18_local3 = Lobby.GetVoteMapImage( MapVoting.MapB.refNum )
|
|
local f18_local4 = LUI.mp_menus.Aliens.FixGameModeTextForChaos( Lobby.GetVoteMapGametype( MapVoting.MapA.refNum ) )
|
|
local f18_local5 = LUI.mp_menus.Aliens.FixGameModeTextForChaos( Lobby.GetVoteMapGametype( MapVoting.MapB.refNum ) )
|
|
local f18_local6 = IsVotingFinished()
|
|
local f18_local7 = not GetLobbyLeaderboardStatus()
|
|
local f18_local8 = Engine.IsAliensMode()
|
|
local f18_local9 = SvS.IsSvS()
|
|
if not f18_local9 then
|
|
f18_local9 = Engine.GetDvarBool( "squad_match" )
|
|
end
|
|
local f18_local10 = 14
|
|
local f18_local11 = {}
|
|
if not f18_arg0.slot then
|
|
DebugPrint( "[WARNING] CAC: using cac slot index 0, this is only ok if you are editing a menu" )
|
|
local f18_local12 = 0
|
|
end
|
|
local f18_local13 = Cac.GetCustomClassLoc( f18_arg0.classLocation )
|
|
if f18_local8 then
|
|
local f18_local14 = Engine.GetDvarInt( "pt_AliensReadyUpPublicInUse" )
|
|
if f18_local14 ~= nil and f18_local14 ~= 0 then
|
|
f18_local11[#f18_local11 + 1] = {
|
|
type = "UIGenericButton",
|
|
id = "ready_up_button_id",
|
|
disabledFunc = GetReadyUpDisableValue,
|
|
properties = {
|
|
disabledFunc = GetReadyUpDisableValue,
|
|
button_text = "",
|
|
button_action_func = ReadyUpAction,
|
|
desc_text = GetReadyUpDescText,
|
|
additional_handlers = {
|
|
recheck_start_button_lock = RefreshButtonDisable,
|
|
element_refresh = UpdateReadyUpText,
|
|
menu_create = UpdateReadyUpText,
|
|
ready_up_button_refresh = UpdateReadyUpText
|
|
}
|
|
},
|
|
children = {
|
|
{
|
|
type = "UITimer",
|
|
id = "ready_up_button_refresh_timer_id",
|
|
properties = {
|
|
event = "ready_up_button_refresh",
|
|
interval = 100,
|
|
disposable = false,
|
|
broadcastToRoot = false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
end
|
|
if not f18_local8 then
|
|
if not SvS.IsSvS() or SvS.GetCurrentSquadModeInfo() ~= SvS.SquadModes.SquadAssault then
|
|
f18_local11[#f18_local11 + 1] = {
|
|
type = "UIGenericButton",
|
|
id = "create_squad_button_id",
|
|
properties = {
|
|
button_text = Engine.Localize( "@LUA_MENU_CREATE_A_CLASS_CAPS" ),
|
|
button_action_func = CreateSquadAction,
|
|
desc_text = Engine.Localize( "@LUA_MENU_DESC_CREATE_A_CLASS" )
|
|
}
|
|
}
|
|
end
|
|
else
|
|
f18_local11[#f18_local11 + 1] = LUI.mp_menus.AliensLoadout.GetAliensLoadoutButton()
|
|
end
|
|
if not f18_local8 and not f18_local9 then
|
|
f18_local11[#f18_local11 + 1] = {
|
|
type = "UIGenericButton",
|
|
id = "operations_button_id",
|
|
properties = {
|
|
button_text = Engine.Localize( "@LUA_MENU_OPERATIONS_TITLE" ),
|
|
button_action_func = LUI.mp_menus.MPBarracks.BarrackOperationsAction,
|
|
desc_text = Engine.Localize( "@LUA_MENU_DESC_CHALLENGES" )
|
|
}
|
|
}
|
|
end
|
|
if not f18_local9 and not f18_local8 then
|
|
f18_local11[#f18_local11 + 1] = {
|
|
type = "UIGenericButton",
|
|
id = "barracks_button_id",
|
|
properties = {
|
|
button_text = Engine.Localize( "@LUA_MENU_BARRACKS_CAPS" ),
|
|
button_action_func = BarracksAction,
|
|
desc_text = Clan.IsEnabled() and Engine.Localize( "@LUA_MENU_DESC_BARRACKS" ) or Engine.Localize( "@LUA_MENU_DESC_BARRACKS_PRIVATE" )
|
|
}
|
|
}
|
|
end
|
|
if not f18_local9 then
|
|
f18_local11[#f18_local11 + 1] = {
|
|
type = "UIGenericButton",
|
|
id = "lobby_leaderboard_button_id",
|
|
disabled = f18_local7,
|
|
properties = {
|
|
button_text = Engine.Localize( "@LUA_MENU_LOBBY_LEADERBOARD" ),
|
|
button_action_func = LobbyLeaderboardAction,
|
|
desc_text = Engine.Localize( "@LUA_MENU_DESC_LOBBY_LEADERBOARDS" ),
|
|
additional_handlers = {
|
|
check_button_disable_status = CheckLobbyLeaderboardStatus
|
|
}
|
|
}
|
|
}
|
|
end
|
|
if f18_local9 then
|
|
local f18_local14 = SvS.GetCurrentSquadModeInfo()
|
|
if f18_local14 and f18_local14.HasReports then
|
|
f18_local11[#f18_local11 + 1] = {
|
|
type = "UIGenericButton",
|
|
id = "squad_reports_button_id",
|
|
properties = {
|
|
button_text = Engine.Localize( "@LUA_MENU_SQUAD_REPORTS" ),
|
|
desc_text = Engine.Localize( "@LUA_MENU_SQUAD_REPORTS_DESC" ),
|
|
button_action_func = function ( f19_arg0, f19_arg1 )
|
|
LUI.FlowManager.RequestAddMenu( f19_arg0, "squad_reports_menu", false, f19_arg1.controller, false, {
|
|
controller = f19_arg1.controller,
|
|
fromLiveLobby = true
|
|
} )
|
|
end
|
|
}
|
|
}
|
|
end
|
|
if f18_local14 and f18_local14.HasCompare then
|
|
f18_local11[#f18_local11 + 1] = {
|
|
type = "UIGenericButton",
|
|
id = "squad_compare_button_id",
|
|
disabled = CheckSquadCompareDisabled(),
|
|
properties = {
|
|
button_text = Engine.Localize( "@LUA_MENU_SQUAD_COMPARE" ),
|
|
desc_text = Engine.Localize( "@LUA_MENU_SQUAD_COMPARE_DESC" ),
|
|
button_action_func = function ( f20_arg0, f20_arg1 )
|
|
if Squad.FoundMatch() then
|
|
local f20_local0 = SvS.BuildSquadCompareData( f20_arg1.controller )
|
|
if f20_local0 then
|
|
LUI.FlowManager.RequestAddMenu( f20_arg0, "squad_report_detail_menu", false, f20_arg1.controller, false, {
|
|
reportData = f20_local0,
|
|
controller = f20_arg1.controller,
|
|
isCompare = true
|
|
} )
|
|
end
|
|
end
|
|
end
|
|
},
|
|
handlers = {
|
|
check_button_disable_status = function ( f21_arg0, f21_arg1 )
|
|
local f21_local0 = f21_arg0
|
|
local f21_local1 = f21_arg0.processEvent
|
|
local f21_local2 = {}
|
|
local f21_local3
|
|
if not CheckSquadCompareDisabled() then
|
|
f21_local3 = "enable"
|
|
if not f21_local3 then
|
|
|
|
else
|
|
f21_local2.name = f21_local3
|
|
f21_local1( f21_local0, f21_local2 )
|
|
end
|
|
end
|
|
f21_local3 = "disable"
|
|
end
|
|
}
|
|
}
|
|
end
|
|
end
|
|
if f18_local9 then
|
|
local f18_local14 = SvS.GetCurrentSquadModeInfo()
|
|
if not f18_local14.HasLeaderboard then
|
|
|
|
else
|
|
f18_local11[#f18_local11 + 1] = {
|
|
type = "UIGenericButton",
|
|
id = "leaderboards_button_id",
|
|
properties = {
|
|
button_text = Engine.Localize( "@LUA_MENU_LEADERBOARDS_CAPS" ),
|
|
desc_text = Engine.Localize( "@LUA_MENU_DESC_LEADERBOARDS" ),
|
|
button_action_func = function ( f22_arg0, f22_arg1 )
|
|
if Engine.IsUserAGuest( f22_arg1.controller ) then
|
|
LUI.FlowManager.RequestPopupMenu( f22_arg0, "popup_no_guest", true, f22_arg1.controller )
|
|
else
|
|
LUI.FlowManager.RequestAddMenu( f22_arg0, "leaderboards", true, f22_arg1.controller )
|
|
end
|
|
end
|
|
}
|
|
}
|
|
end
|
|
end
|
|
if f18_local8 then
|
|
f18_local11[#f18_local11 + 1] = {
|
|
type = "UIGenericButton",
|
|
id = "leaderboards_button_id",
|
|
properties = {
|
|
button_text = Engine.Localize( "@LUA_MENU_LEADERBOARDS_CAPS" ),
|
|
desc_text = Engine.Localize( "@LUA_MENU_DESC_LEADERBOARDS" ),
|
|
button_action_func = function ( f22_arg0, f22_arg1 )
|
|
if Engine.IsUserAGuest( f22_arg1.controller ) then
|
|
LUI.FlowManager.RequestPopupMenu( f22_arg0, "popup_no_guest", true, f22_arg1.controller )
|
|
else
|
|
LUI.FlowManager.RequestAddMenu( f22_arg0, "leaderboards", true, f22_arg1.controller )
|
|
end
|
|
end
|
|
}
|
|
}
|
|
end
|
|
if f18_local8 and LUI.mp_menus.Aliens.CanAccessIntelMenu() then
|
|
f18_local11[#f18_local11 + 1] = LUI.mp_menus.AliensIntel.GetAliensIntelButton()
|
|
end
|
|
f18_local11[#f18_local11 + 1] = {
|
|
type = "button_desc_text",
|
|
id = "public_lobby_description_id",
|
|
properties = {
|
|
lines = 1
|
|
}
|
|
}
|
|
f18_local11[#f18_local11 + 1] = {
|
|
type = "UIElement",
|
|
id = "just_a_spacer_id",
|
|
focusable = false,
|
|
states = {
|
|
default = {
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
left = 0,
|
|
right = 0,
|
|
top = 0,
|
|
bottom = f18_local10
|
|
}
|
|
}
|
|
}
|
|
f18_local11[#f18_local11 + 1] = {
|
|
type = "UITimer",
|
|
id = "check_status_tmr",
|
|
properties = {
|
|
event = "check_button_disable_status",
|
|
interval = 500,
|
|
disposable = false,
|
|
broadcastToRoot = true
|
|
}
|
|
}
|
|
if not f18_local9 and not f18_local6 then
|
|
f18_local11[#f18_local11 + 1] = {
|
|
type = "map_button",
|
|
id = "map_button_1",
|
|
properties = {
|
|
mapVoteIndex = MapVoting.MapA.refNum,
|
|
mapImage = RegisterMaterial( f18_local2 ),
|
|
mapName = f18_local0,
|
|
gamemode = f18_local4,
|
|
votesText = Engine.GetDvarString( "party_nextMapVoteStatus" ),
|
|
votesDvarName = "party_nextMapVoteStatus",
|
|
action = function ( f23_arg0, f23_arg1 )
|
|
VoteForMap( f23_arg0, f23_arg1.controller, MapVoting.MapA.voteIndex )
|
|
end
|
|
}
|
|
}
|
|
f18_local11[#f18_local11 + 1] = {
|
|
type = "UIElement",
|
|
id = "just_another_spacer_id",
|
|
focusable = false,
|
|
states = {
|
|
default = {
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
left = 0,
|
|
right = 0,
|
|
top = 0,
|
|
bottom = 40
|
|
}
|
|
}
|
|
}
|
|
f18_local11[#f18_local11 + 1] = {
|
|
type = "map_button",
|
|
id = "map_button_2",
|
|
properties = {
|
|
mapVoteIndex = MapVoting.MapB.refNum,
|
|
mapImage = RegisterMaterial( f18_local3 ),
|
|
mapName = f18_local1,
|
|
gamemode = f18_local5,
|
|
votesText = Engine.GetDvarString( "party_alternateMapVoteStatus" ),
|
|
votesDvarName = "party_alternateMapVoteStatus",
|
|
action = function ( f24_arg0, f24_arg1 )
|
|
VoteForMap( f24_arg0, f24_arg1.controller, MapVoting.MapB.voteIndex )
|
|
end
|
|
}
|
|
}
|
|
end
|
|
return f18_local11
|
|
end
|
|
|
|
function UpdatePlaylistTitleText( f25_arg0, f25_arg1 )
|
|
local f25_local0 = Engine.GetDvarString( "playlist_name" )
|
|
if f25_local0 then
|
|
f25_arg0:processEvent( {
|
|
name = "update_header_text",
|
|
string = f25_local0
|
|
} )
|
|
end
|
|
end
|
|
|
|
function HandleTransitionToGame( f26_arg0, f26_arg1 )
|
|
if not Lobby.SafeToStartLobbyTransition then
|
|
return
|
|
end
|
|
local f26_local0, f26_local1 = Lobby.GetPartyStatus()
|
|
if f26_local1 and f26_local1 > 0 and f26_local1 <= 1 and f26_arg0.properties.transitionToGameStarted == false and Lobby.SafeToStartLobbyTransition() then
|
|
f26_arg0.properties.transitionToGameStarted = true
|
|
f26_arg0:processEvent( {
|
|
name = "lose_focus"
|
|
} )
|
|
LUI.UIRoot.BlockButtonInput( Engine.GetLuiRoot(), true, "MenuTransition" )
|
|
f26_arg0:dispatchEventToRoot( {
|
|
name = "lobby_transition_to_game",
|
|
dispatchChildren = true,
|
|
immediate = true
|
|
} )
|
|
end
|
|
if f26_local1 == -1 and f26_arg0.properties.transitionToGameStarted then
|
|
f26_arg0:processEvent( {
|
|
name = "gain_focus"
|
|
} )
|
|
LUI.UIRoot.BlockButtonInput( Engine.GetLuiRoot(), false, "MenuTransition" )
|
|
f26_arg0.properties.transitionToGameStarted = false
|
|
f26_arg0:dispatchEventToRoot( {
|
|
name = "lobby_rollback_transition_to_game",
|
|
dispatchChildren = true,
|
|
immediate = true
|
|
} )
|
|
end
|
|
end
|
|
|
|
function menu_xboxlive_lobby()
|
|
local f27_local0 = Engine.IsAliensMode()
|
|
local f27_local1
|
|
if SvS.IsSvS() ~= false then
|
|
f27_local1 = SvS.ShouldDisplayAAR()
|
|
else
|
|
f27_local1 = true
|
|
end
|
|
local f27_local2 = nil
|
|
if f27_local1 then
|
|
f27_local2 = OpenAfterActionReport
|
|
end
|
|
return {
|
|
type = "UIElement",
|
|
id = "menu_xboxlive_publiclobby_root",
|
|
properties = {
|
|
transitionToGameStarted = false
|
|
},
|
|
states = {
|
|
default = {
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
top = 0,
|
|
bottom = 0,
|
|
left = 0,
|
|
right = 0
|
|
}
|
|
},
|
|
handlers = {
|
|
menu_create = LivePublicLobbyMenuCreate,
|
|
speech_action = LivePublicLobbyMenuSpeechHandler,
|
|
exit_public_lobby = MBh.LeaveMenu(),
|
|
open_after_action_report = OpenAfterActionReport,
|
|
check_transition_to_game = HandleTransitionToGame
|
|
},
|
|
children = {
|
|
{
|
|
type = "UITimer",
|
|
id = "check_transition_to_game_id",
|
|
properties = {
|
|
event = "check_transition_to_game",
|
|
interval = 100,
|
|
disposable = false
|
|
}
|
|
},
|
|
{
|
|
type = "lobby_navigation",
|
|
properties = {
|
|
lobbyNavigationPages = PublicLobbyNavigationPages
|
|
}
|
|
},
|
|
{
|
|
type = "UITimer",
|
|
id = "options_list_tmr",
|
|
properties = {
|
|
event = "check_refresh_lobby_options",
|
|
interval = 500,
|
|
disposable = false,
|
|
broadcastToRoot = true
|
|
}
|
|
},
|
|
{
|
|
type = "UIBindButton",
|
|
id = "lobby_bind_buttons_id",
|
|
handlers = {
|
|
button_secondary = RequestExitPublicLobby,
|
|
button_select = f27_local2
|
|
}
|
|
},
|
|
{
|
|
type = "lobby_loading_widget"
|
|
},
|
|
{
|
|
type = "lobby_game_type_title"
|
|
},
|
|
{
|
|
type = "lobby_game_type_icon",
|
|
properties = {
|
|
online = true
|
|
}
|
|
},
|
|
{
|
|
type = "aar_mini",
|
|
id = "the_mini_aar_id"
|
|
},
|
|
{
|
|
type = "UIElement",
|
|
id = "LowerSliderID",
|
|
states = {
|
|
default = {
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
left = 0,
|
|
right = 0,
|
|
top = 0,
|
|
bottom = 0,
|
|
alpha = 1
|
|
},
|
|
hidden = {
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
left = 0,
|
|
right = 0,
|
|
top = 100,
|
|
bottom = 100,
|
|
alpha = 0
|
|
}
|
|
},
|
|
handlers = {
|
|
lobby_transition_to_game = MBh.AnimateToState( "hidden", Lobby.TransitionTime ),
|
|
lobby_rollback_transition_to_game = MBh.AnimateToState( "default", Lobby.TransitionTime ),
|
|
menu_create = function ( f28_arg0, f28_arg1 )
|
|
f28_arg0:processEvent( LUI.ButtonHelperText.CommonEvents.addBackButton )
|
|
if f27_local1 then
|
|
f28_arg0:processEvent( LUI.ButtonHelperText.CommonEvents.addGameSummaryButton )
|
|
end
|
|
end
|
|
,
|
|
refresh_player_count = function ( f29_arg0, f29_arg1 )
|
|
if not SvS.IsSvS() then
|
|
local f29_local0 = Engine.GetDvarString( "party_lobbyPlayerCount" )
|
|
local f29_local1 = f29_arg0:getParent()
|
|
f29_local1:processEvent( {
|
|
name = "add_button_helper_text",
|
|
button_ref = "players",
|
|
helper_text = f29_local0,
|
|
side = "right",
|
|
clickable = false
|
|
} )
|
|
end
|
|
end
|
|
|
|
},
|
|
children = {
|
|
{
|
|
type = "map_info_text",
|
|
id = "map_info_text_id"
|
|
},
|
|
{
|
|
type = "lobby_status",
|
|
id = "lobby_status_id"
|
|
},
|
|
{
|
|
type = "lobby_search_status",
|
|
id = "lobby_search_status_id"
|
|
},
|
|
{
|
|
type = "character_playing_as",
|
|
id = "character_playing_as_id"
|
|
},
|
|
{
|
|
type = "SocialFeedTicker",
|
|
id = "social_ticker_id",
|
|
properties = {
|
|
isLobbyTicker = true
|
|
}
|
|
},
|
|
{
|
|
type = "button_helper_text_main",
|
|
id = "cac_button_helper_text_id"
|
|
},
|
|
{
|
|
type = "online_friends_widget",
|
|
id = "online_friends_widget_id"
|
|
},
|
|
{
|
|
type = "UITimer",
|
|
id = "player_count_timer",
|
|
properties = {
|
|
event = "refresh_player_count",
|
|
interval = 200,
|
|
disposable = false
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
function menu_xboxlive_lobby_push()
|
|
if Engine.IsAliensMode() then
|
|
Lobby.ClearLocalReadyUpFlag()
|
|
end
|
|
end
|
|
|
|
function PublicLobbyNavigationPages( f31_arg0 )
|
|
local f31_local0 = {}
|
|
local f31_local1 = 25
|
|
local f31_local2 = GenericMenuDims.menu_top
|
|
if SvS.IsSvS() and SvS.GetCurrentSquadModeInfo() == SvS.SquadModes.SquadAssault then
|
|
f31_local2 = GenericMenuDims.menu_top - 20
|
|
end
|
|
f31_local0[#f31_local0 + 1] = {
|
|
title = "Playlist Name",
|
|
title_update_func = UpdatePlaylistTitleText,
|
|
element = {
|
|
type = "UIElement",
|
|
id = "live_public_lobby_options_container",
|
|
states = {
|
|
default = {
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
left = 0,
|
|
right = 0,
|
|
top = 0,
|
|
bottom = 0
|
|
}
|
|
},
|
|
children = {
|
|
getXPIcon(),
|
|
{
|
|
type = "live_public_lobby_options",
|
|
id = "live_public_lobby_options_id",
|
|
properties = {
|
|
additional_handlers = {
|
|
refresh_ready_up = MBh.EmitEvent( "menu_refresh" )
|
|
}
|
|
},
|
|
childrenFeeder = LivePublicLobbyOptionsFeeder
|
|
}
|
|
}
|
|
}
|
|
}
|
|
f31_local0[#f31_local0 + 1] = {
|
|
title = Engine.Localize( "@LUA_MENU_LOBBY_LIST_CAPS" ),
|
|
element = {
|
|
type = "UIElement",
|
|
id = "members_page",
|
|
properties = {
|
|
additional_handlers = {
|
|
lobby_page_left = function ( f32_arg0, f32_arg1 )
|
|
f32_arg0:animateToState( "page_left", f32_arg1.animTime or 0, true )
|
|
end,
|
|
lobby_page_right = function ( f33_arg0, f33_arg1 )
|
|
f33_arg0:animateToState( "page_right", f33_arg1.animTime or 0, true )
|
|
end
|
|
}
|
|
},
|
|
states = {
|
|
default = {
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
left = 0,
|
|
right = 550,
|
|
top = 0,
|
|
bottom = 0
|
|
},
|
|
page_left = {
|
|
leftAnchor = false,
|
|
rightAnchor = true,
|
|
left = -550,
|
|
right = 0
|
|
},
|
|
page_right = {
|
|
leftAnchor = true,
|
|
rightAnchor = false,
|
|
left = 0,
|
|
right = 550
|
|
}
|
|
},
|
|
children = {
|
|
{
|
|
type = "lobby_search_widget",
|
|
id = "public_lobby_search_widget"
|
|
},
|
|
{
|
|
type = "member_list",
|
|
properties = {
|
|
memberListState = Lobby.MemberListStates.Lobby,
|
|
isPublicLobby = true,
|
|
delayMemberList = SvS.GetCurrentSquadModeInfo() == SvS.SquadModes.SquadAssault
|
|
},
|
|
states = {
|
|
default = {
|
|
alignment = LUI.Alignment.Top,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
left = 0,
|
|
right = 0,
|
|
top = f31_local2,
|
|
bottom = GenericMenuDims.menu_bottom + f31_local1,
|
|
spacing = GetMemberListSpacing()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if not Engine.IsAliensMode() or Engine.GetDvarBool( "extinction_cac_enabled" ) then
|
|
f31_local0[#f31_local0 + 1] = {
|
|
title = Engine.Localize( "@LUA_MENU_PLAYER_STATS_CAPS" ),
|
|
element = {
|
|
type = "lobby_character_view",
|
|
id = "lobby_character_view_id",
|
|
properties = {
|
|
squad_location = "squadMembers"
|
|
}
|
|
}
|
|
}
|
|
end
|
|
f31_local0[#f31_local0 + 1] = {
|
|
title = Engine.Localize( "@LUA_MENU_PLAYER_COMPARISON_CAPS" ),
|
|
element = {
|
|
type = "lobby_player_stats",
|
|
id = "lobby_player_stats_id",
|
|
properties = {
|
|
additional_handlers = {
|
|
lobby_page_left = function ( f34_arg0, f34_arg1 )
|
|
f34_arg0:animateToState( "page_left", f34_arg1.animTime or 0, true )
|
|
end,
|
|
lobby_page_right = function ( f35_arg0, f35_arg1 )
|
|
f35_arg0:animateToState( "page_right", f35_arg1.animTime or 0, true )
|
|
end
|
|
}
|
|
},
|
|
states = {
|
|
default = {
|
|
alignment = LUI.Alignment.Top,
|
|
leftAnchor = true,
|
|
rightAnchor = false,
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
left = 0,
|
|
right = 550,
|
|
top = 0,
|
|
bottom = 0
|
|
},
|
|
page_left = {
|
|
leftAnchor = false,
|
|
rightAnchor = true,
|
|
left = -550,
|
|
right = 0
|
|
},
|
|
page_right = {
|
|
leftAnchor = true,
|
|
rightAnchor = false,
|
|
left = 0,
|
|
right = 550
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if not Engine.IsAliensMode() or Engine.GetDvarBool( "extinction_cac_enabled" ) then
|
|
f31_local0[#f31_local0 + 1] = {
|
|
element = {
|
|
type = "lobby_player_stats",
|
|
id = "lobby_player_comparison_id",
|
|
properties = {
|
|
isComparison = true,
|
|
additional_handlers = {
|
|
lobby_page_left = function ( f36_arg0, f36_arg1 )
|
|
f36_arg0:animateToState( "page_left", f36_arg1.animTime or 0, true )
|
|
end,
|
|
lobby_page_right = function ( f37_arg0, f37_arg1 )
|
|
f37_arg0:animateToState( "page_right", f37_arg1.animTime or 0, true )
|
|
end
|
|
}
|
|
},
|
|
states = {
|
|
default = {
|
|
alignment = LUI.Alignment.Top,
|
|
leftAnchor = true,
|
|
rightAnchor = false,
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
left = 0,
|
|
right = 550,
|
|
top = 0,
|
|
bottom = 0
|
|
},
|
|
page_left = {
|
|
leftAnchor = false,
|
|
rightAnchor = true,
|
|
left = -550,
|
|
right = 0
|
|
},
|
|
page_right = {
|
|
leftAnchor = true,
|
|
rightAnchor = false,
|
|
left = 0,
|
|
right = 550
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
return f31_local0
|
|
end
|
|
|
|
function checkRefreshLobbyOptions( f38_arg0, f38_arg1 )
|
|
local f38_local0 = false
|
|
local f38_local1 = IsVotingFinished()
|
|
local f38_local2 = Lobby.GetHostName()
|
|
if f38_arg0.properties.map_voting_complete ~= f38_local1 then
|
|
f38_arg0.properties.map_voting_complete = f38_local1
|
|
f38_local0 = true
|
|
end
|
|
if f38_arg0.properties.hostname ~= f38_local2 then
|
|
f38_arg0.properties.hostname = f38_local2
|
|
f38_local0 = true
|
|
end
|
|
if f38_local0 then
|
|
f38_arg0:processEvent( {
|
|
name = "menu_refresh"
|
|
} )
|
|
end
|
|
end
|
|
|
|
function CreateLobbyOptions( f39_arg0, f39_arg1 )
|
|
f39_arg0.properties.hostname = Lobby.GetHostName()
|
|
end
|
|
|
|
function live_public_lobby_options()
|
|
return {
|
|
type = "UIVerticalList",
|
|
id = "live_public_lobby_options_list_id",
|
|
focusable = true,
|
|
states = {
|
|
default = {
|
|
alignment = LUI.Alignment.Top,
|
|
leftAnchor = true,
|
|
rightAnchor = false,
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
left = GenericMenuDims.menu_left,
|
|
right = GenericMenuDims.menu_right_more,
|
|
top = GenericMenuDims.menu_top,
|
|
bottom = GenericMenuDims.menu_bottom_tall
|
|
}
|
|
},
|
|
handlers = {
|
|
menu_create = CreateLobbyOptions,
|
|
check_refresh_lobby_options = checkRefreshLobbyOptions
|
|
}
|
|
}
|
|
end
|
|
|
|
function UpdateVotesText( f41_arg0, f41_arg1 )
|
|
if f41_arg0.properties.votesDvarName ~= "" then
|
|
f41_arg0:setText( Engine.GetDvarString( f41_arg0.properties.votesDvarName ) )
|
|
end
|
|
end
|
|
|
|
function UpdateMyMapImage( f42_arg0, f42_arg1 )
|
|
local f42_local0 = Lobby.GetVoteMapImage( f42_arg0.properties.mapVoteIndex )
|
|
if f42_local0 then
|
|
f42_arg0:setImage( RegisterMaterial( f42_local0 ) )
|
|
end
|
|
end
|
|
|
|
function UpdateMapNameText( f43_arg0, f43_arg1 )
|
|
local f43_local0 = Lobby.GetVoteMapName( f43_arg0.properties.mapVoteIndex )
|
|
if f43_local0 then
|
|
f43_arg0:setText( f43_local0 )
|
|
end
|
|
end
|
|
|
|
function UpdateGameTypeText( f44_arg0, f44_arg1 )
|
|
local f44_local0 = Lobby.GetVoteMapGametype( f44_arg0.properties.mapVoteIndex )
|
|
if f44_local0 then
|
|
f44_arg0:setText( LUI.mp_menus.Aliens.FixGameModeTextForChaos( f44_local0 ) )
|
|
end
|
|
end
|
|
|
|
function MapButtonRefreshAll( f45_arg0, f45_arg1 )
|
|
f45_arg0:processEvent( {
|
|
name = "map_button_refresh_all"
|
|
} )
|
|
end
|
|
|
|
function ExtendMapPanel( f46_arg0, f46_arg1 )
|
|
local f46_local0 = f46_arg0:getParent()
|
|
f46_local0:dispatchEventToChildren( {
|
|
name = "expand"
|
|
} )
|
|
f46_local0:dispatchEventToChildren( {
|
|
name = "updateBorderColor",
|
|
red = Colors.grey_3.r,
|
|
green = Colors.grey_3.g,
|
|
blue = Colors.grey_3.b,
|
|
alpha = 1
|
|
} )
|
|
end
|
|
|
|
function ContractMapPanel( f47_arg0, f47_arg1 )
|
|
local f47_local0 = f47_arg0:getParent()
|
|
f47_local0:dispatchEventToChildren( {
|
|
name = "contract"
|
|
} )
|
|
f47_local0:dispatchEventToChildren( {
|
|
name = "updateBorderColor",
|
|
red = Colors.grey_2.r,
|
|
green = Colors.grey_2.g,
|
|
blue = Colors.grey_2.b,
|
|
alpha = 1
|
|
} )
|
|
end
|
|
|
|
function map_button()
|
|
local f48_local0 = Engine.IsAliensMode() and 80 or 114
|
|
local f48_local1 = Engine.IsAliensMode() and 130 or 0
|
|
return {
|
|
type = "UIElement",
|
|
focusable = true,
|
|
states = {
|
|
default = {
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
top = 0,
|
|
left = 0,
|
|
right = -34,
|
|
bottom = f48_local0
|
|
}
|
|
},
|
|
properties = {
|
|
mapVoteIndex = -1,
|
|
mapImage = RegisterMaterial( "" ),
|
|
mapName = "",
|
|
gamemode = "",
|
|
votesText = "",
|
|
votesDvarName = "",
|
|
action = function ()
|
|
DebugPrint( "OverrideMe" )
|
|
end
|
|
|
|
},
|
|
handlers = {
|
|
map_info_refresh = MapButtonRefreshAll
|
|
},
|
|
children = {
|
|
{
|
|
type = "UITimer",
|
|
id = "map_button_timer",
|
|
properties = {
|
|
event = "map_info_refresh",
|
|
interval = 200,
|
|
disposable = false
|
|
}
|
|
},
|
|
{
|
|
type = "UIImage",
|
|
states = {
|
|
default = CoD.ColorizeState( Colors.black, {
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
leftAnchor = true,
|
|
rightAnchor = false,
|
|
top = 0,
|
|
bottom = 0,
|
|
left = 0,
|
|
width = 100,
|
|
material = RegisterMaterial( "white" )
|
|
} )
|
|
}
|
|
},
|
|
{
|
|
type = "UIImage",
|
|
id = "map_image_shadow",
|
|
states = {
|
|
default = {
|
|
material = RegisterMaterial( "img_lobby_map_shadow" ),
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
left = 0,
|
|
right = 40,
|
|
top = -30,
|
|
bottom = 70
|
|
},
|
|
focused = {
|
|
material = RegisterMaterial( "img_lobby_map_shadow" ),
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
left = 0,
|
|
right = 70,
|
|
top = -30,
|
|
bottom = 70
|
|
}
|
|
},
|
|
handlers = {
|
|
expand = MBh.AnimateToState( "focused", 100 ),
|
|
contract = MBh.AnimateToState( "default", 0 )
|
|
}
|
|
},
|
|
{
|
|
type = "UIButton",
|
|
id = "map_panel_container",
|
|
properties = {
|
|
action = MBh.Property( "action" ),
|
|
mapImage = MBh.Property( "mapImage" ),
|
|
mapVoteIndex = MBh.Property( "mapVoteIndex" ),
|
|
votesDvarName = MBh.Property( "votesDvarName" ),
|
|
votesText = MBh.Property( "votesText" )
|
|
},
|
|
states = {
|
|
default = {
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
top = 0,
|
|
bottom = 0,
|
|
left = -12,
|
|
right = -12
|
|
},
|
|
focused = {
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
top = 0,
|
|
bottom = 0,
|
|
left = 28,
|
|
right = 28
|
|
}
|
|
},
|
|
handlers = {
|
|
expand = MBh.AnimateToState( "focused", 100 ),
|
|
contract = MBh.AnimateToState( "default", 0 ),
|
|
button_action = function ( f50_arg0, f50_arg1 )
|
|
f50_arg0.properties:action( f50_arg1 )
|
|
end
|
|
|
|
},
|
|
children = {
|
|
{
|
|
type = "UIStencil",
|
|
id = "map_stencil_id",
|
|
states = {
|
|
default = {
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
left = 0,
|
|
right = 0,
|
|
top = 0,
|
|
bottom = 0
|
|
}
|
|
},
|
|
children = {
|
|
{
|
|
type = "UIImage",
|
|
id = "map_image_id",
|
|
states = {
|
|
default = {
|
|
material = MBh.Property( "mapImage" ),
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
left = 0,
|
|
right = 0,
|
|
top = 0 - f48_local1,
|
|
bottom = 0 + f48_local1
|
|
}
|
|
},
|
|
handlers = {
|
|
map_button_refresh_all = UpdateMyMapImage,
|
|
element_refresh = UpdateMyMapImage
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
type = "UIImage",
|
|
id = "map_text_darken",
|
|
states = {
|
|
default = {
|
|
material = RegisterMaterial( "img_map_darken" ),
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
topAnchor = false,
|
|
bottomAnchor = true,
|
|
left = 1,
|
|
right = -1,
|
|
top = -40,
|
|
bottom = -1 * f48_local0,
|
|
alpha = 0.75
|
|
}
|
|
}
|
|
},
|
|
{
|
|
type = "UIText",
|
|
id = "gamemode_name_text_id",
|
|
properties = {
|
|
text = "",
|
|
textStyle = CoD.TextStyle.Shadowed,
|
|
mapVoteIndex = MBh.Property( "mapVoteIndex" )
|
|
},
|
|
states = {
|
|
default = {
|
|
alignment = LUI.Alignment.Right,
|
|
font = CoD.TextSettings.NormalFont.Font,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
left = 0,
|
|
right = -10,
|
|
top = 3,
|
|
bottom = 3 + CoD.TextSettings.NormalFont.Height,
|
|
red = 0.5,
|
|
green = 0.5,
|
|
blue = 0.5
|
|
}
|
|
},
|
|
handlers = {
|
|
map_button_refresh_all = UpdateGameTypeText,
|
|
element_refresh = UpdateGameTypeText
|
|
}
|
|
},
|
|
{
|
|
type = "UIText",
|
|
id = "num_votes_text_id",
|
|
properties = {
|
|
text = "",
|
|
textStyle = CoD.TextStyle.Shadowed,
|
|
votesDvarName = MBh.Property( "votesDvarName" )
|
|
},
|
|
states = {
|
|
default = {
|
|
alignment = LUI.Alignment.Right,
|
|
font = CoD.TextSettings.NormalFont.Font,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
left = 0,
|
|
right = -10,
|
|
top = 20,
|
|
bottom = 20 + CoD.TextSettings.NormalFont.Height
|
|
}
|
|
},
|
|
handlers = {
|
|
map_button_refresh_all = UpdateVotesText,
|
|
element_refresh = UpdateVotesText
|
|
}
|
|
},
|
|
{
|
|
type = "generic_border",
|
|
id = "boarder_image_id",
|
|
properties = {
|
|
inner = true,
|
|
thickness = 2,
|
|
border_red = Colors.grey_2.r,
|
|
border_green = Colors.grey_2.g,
|
|
border_blue = Colors.grey_2.b,
|
|
border_alpha = 1
|
|
}
|
|
},
|
|
{
|
|
type = "UIImage",
|
|
states = {
|
|
default = CoD.ColorizeState( Colors.black, {
|
|
topAnchor = true,
|
|
bottomAnchor = true,
|
|
leftAnchor = true,
|
|
rightAnchor = false,
|
|
top = 0,
|
|
bottom = 0,
|
|
left = 0,
|
|
width = 100,
|
|
material = RegisterMaterial( "box_white_gradient_fade" )
|
|
} )
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
type = "UIGenericButton",
|
|
id = "map_button",
|
|
properties = {
|
|
button_text = MBh.Property( "mapName" ),
|
|
desc_text = Engine.Localize( "@LUA_MENU_VOTE_FOR_MAP" ),
|
|
action = MBh.Property( "action" ),
|
|
mapVoteIndex = MBh.Property( "mapVoteIndex" ),
|
|
button_over_func = ExtendMapPanel,
|
|
button_up_func = ContractMapPanel
|
|
},
|
|
states = {
|
|
default = {
|
|
topAnchor = true,
|
|
bottomAnchor = false,
|
|
leftAnchor = true,
|
|
rightAnchor = true,
|
|
top = f48_local0 - 1,
|
|
bottom = f48_local0 - 1 + GenericButtonSettings.Styles.GradientButton.height,
|
|
left = 0,
|
|
right = -5
|
|
}
|
|
},
|
|
handlers = {
|
|
button_action = function ( f51_arg0, f51_arg1 )
|
|
f51_arg0.properties:action( f51_arg1 )
|
|
end
|
|
,
|
|
map_button_refresh_all = UpdateMapNameText
|
|
}
|
|
}
|
|
}
|
|
}
|
|
end
|
|
|
|
LUI.MenuBuilder.registerDef( "map_button", map_button )
|
|
LUI.MenuBuilder.registerDef( "menu_xboxlive_lobby", menu_xboxlive_lobby )
|
|
LUI.FlowManager.RegisterStackPushBehaviour( "menu_xboxlive_lobby", menu_xboxlive_lobby_push )
|
|
LUI.MenuBuilder.registerDef( "live_public_lobby_options", live_public_lobby_options )
|
|
LockTable( _M )
|