local f0_local0 = module local f0_local1, f0_local2 = ... f0_local0( f0_local1, package.seeall ) CoD.PrintModuleLoad( _NAME ) function mpLobbyWidgets() return { type = "UIElement", id = "mpLobbyWidgets", states = { default = { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = true, top = 0, bottom = 0, left = 0, right = 0 } }, children = { { type = "UIHorizontalList", states = { default = { topAnchor = true, bottomAnchor = false, leftAnchor = true, rightAnchor = false, top = 100, bottom = 132, left = 100, right = 568 } }, children = { { type = "UIImage", id = "left_cap", states = { default = { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = false, top = 0, bottom = 0, left = 0, right = 32, material = RegisterMaterial( "box_lobby_name_lt" ), red = 1, green = 1, blue = 1, alpha = 0.35 } } }, { type = "UIElement", states = { default = { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = false, top = 0, bottom = 0, left = 0, right = 468, red = 1, green = 1, blue = 1, alpha = 1 } }, children = { { type = "UIImage", id = "middle", states = { default = { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = true, top = 0, bottom = 0, left = 0, right = 0, material = RegisterMaterial( "box_lobby_name_mid" ), red = 1, green = 1, blue = 1, alpha = 0.35 } } }, { type = "rank_icon_name" } } }, { type = "UIImage", id = "right_cap", states = { default = { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = false, top = 0, bottom = 0, left = 0, right = 4, material = RegisterMaterial( "box_lobby_name_rt" ), red = 1, green = 1, blue = 1, alpha = 0.35 } } } } }, { type = "UIImage", id = "speaker_icon", states = { default = { topAnchor = true, bottomAnchor = false, leftAnchor = true, rightAnchor = false, top = 0, bottom = 42, left = -21, right = 21, material = RegisterMaterial( "icon_online_chat" ), red = 1, green = 1, blue = 1, alpha = 1 } } }, { type = "online_friends_widget", id = "online_friends_widget_id" }, { type = "global_activity_map", id = "global_activity_map_id" }, { type = "map_digital_anim", id = "map_digital_anim_id" } } } end function map_digital_anim() return { type = "UIElement", id = "map_container", states = { default = { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = true, top = 0, bottom = 0, left = 0, right = 0 } }, children = { { type = "UIImage", id = "left_side_meters", states = { default = { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = false, top = 0, bottom = 0, left = -48, right = -16, material = RegisterMaterial( "fluff_lobby_meters_lt" ), red = 1, green = 1, blue = 1, alpha = 0.2 } } }, { type = "UIImage", id = "rt_map_arrow", states = { default = { topAnchor = false, bottomAnchor = true, leftAnchor = true, rightAnchor = false, top = -8, bottom = 0, left = 364, right = 396, material = RegisterMaterial( "fluff_arrow_tick" ), red = 1, green = 1, blue = 1, alpha = 0.15 }, moveup1 = { topAnchor = false, bottomAnchor = true, leftAnchor = true, rightAnchor = false, top = -8, bottom = 0, left = 364, right = 396, red = 1, green = 1, blue = 1, alpha = 0.2 }, moveup2 = { topAnchor = false, bottomAnchor = true, leftAnchor = true, rightAnchor = false, top = -78, bottom = -70, left = 364, right = 396, red = 1, green = 1, blue = 1, alpha = 0.3 }, moveup3 = { topAnchor = false, bottomAnchor = true, leftAnchor = true, rightAnchor = false, top = -33, bottom = -25, left = 364, right = 392, red = 1, green = 1, blue = 1, alpha = 0.15 }, moveup4 = { topAnchor = false, bottomAnchor = true, leftAnchor = true, rightAnchor = false, top = -180, bottom = -172, left = 364, right = 396, red = 1, green = 1, blue = 1, alpha = 0.3 }, moveup5 = { topAnchor = false, bottomAnchor = true, leftAnchor = true, rightAnchor = false, top = -8, bottom = 0, left = 364, right = 396, red = 1, green = 1, blue = 1, alpha = 0.2 } }, handlers = { menu_create = MBh.AnimateLoop( { { "moveup1", 0, true, true }, { "moveup2", 5000, true, true }, { "moveup3", 5000, true, true }, { "moveup4", 5000, true, true }, { "moveup5", 5000, true, true } } ) } }, { type = "UIImage", id = "blinky", states = { default = { topAnchor = false, bottomAnchor = true, leftAnchor = true, rightAnchor = false, top = 16, bottom = 32, left = -32, right = -16, material = RegisterMaterial( "fluff_lobby_register_tick" ), red = 1, green = 1, blue = 1, alpha = 0.5 }, moveup1 = { red = 1, green = 1, blue = 1, alpha = 0.1, zRot = 0 }, moveup2 = { red = 1, green = 1, blue = 1, alpha = 0.25, zRot = 90 }, moveup3 = { red = 1, green = 1, blue = 1, alpha = 0.1, zRot = 180 }, moveup4 = { red = 1, green = 1, blue = 1, alpha = 0.35, zRot = 270 }, moveup5 = { red = 1, green = 1, blue = 1, alpha = 0.1, zRot = 360 } }, handlers = { menu_create = MBh.AnimateLoop( { { "moveup1", 0 }, { "moveup2", 500 }, { "moveup3", 500 }, { "moveup4", 500 }, { "moveup5", 500 } } ) } } } } end function rank_icon_name() return { type = "UIHorizontalList", states = { default = { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = true, top = 0, bottom = 0, left = 0, right = 0, alpha = 1, spacing = 3 }, dim = { alpha = 0.65 }, disabled = { alpha = 0.2 } }, handlers = { button_over = MBh.AnimateLoop( { { "dim", 200 }, { "default", 200 } } ), button_up = MBh.AnimateToState( "default" ), button_disable = MBh.AnimateToState( "disabled", 0 ) }, children = { { type = "UIText", id = "rank_text", properties = { text = "65" }, states = { default = { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = false, top = 3, bottom = -3, left = 0, right = 32, font = RegisterFont( "fonts/smallfont" ) } } }, { type = "UIImage", id = "rank_icon", states = { default = { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = false, top = 5, bottom = -5, left = 0, right = 21, material = RegisterMaterial( "icon_mp_rank" ), red = 1, green = 1, blue = 1, alpha = 1 } } }, { type = "UIText", id = "clan_tag_text", properties = { text = "[WWWW]" }, states = { default = { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = false, top = 3, bottom = -3, left = 0, right = 75, red = 0.5, green = 0.5, blue = 0.5, font = RegisterFont( "fonts/smallfont" ) } } }, { type = "UIText", id = "gamertag_text", properties = { text = "WWWWWWWWWWWWWWWW" }, states = { default = { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = true, top = 3, bottom = -3, left = 0, right = -200, font = RegisterFont( "fonts/smallfont" ) } } } } } end function updateGlobalActivityMap( f4_arg0, f4_arg1 ) local f4_local0 = 10 local f4_local1 = Playlist.GetTotalActivePlayersCount() if f4_local1 == nil or not f4_local1 then f4_local1 = "" end local f4_local2, f4_local3, f4_local4, f4_local5 = GetTextDimensions( Engine.Localize( "@LUA_MENU_PLAYERS_ONLINE" ), CoD.TextSettings.NormalFont.Font, 16 ) local f4_local6 = f4_local4 - f4_local2 f4_arg0:setText( tostring( f4_local1 ) ) f4_arg0:registerAnimationState( "updated", { leftAnchor = true, rightAnchor = false, topAnchor = false, bottomAnchor = true, left = f4_local6 + f4_local0, bottom = -34, width = 200, top = -50 } ) f4_arg0:animateToState( "updated", 0 ) end function global_activity_map() return { type = "UIElement", id = "map_container", states = { default = { topAnchor = true, bottomAnchor = false, leftAnchor = true, rightAnchor = false, top = 415, left = 100, height = 200, width = 345 } }, handlers = { update_map = MBh.EmitEvent( "update_map_activity" ) }, children = { { type = "UIImage", id = "map_shadow", states = { default = { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = true, top = -31.5, bottom = 0, left = -37, right = 34, material = RegisterMaterial( "box_xbl_map_shadow" ), red = 1, green = 1, blue = 1, alpha = 0.95 } } }, { type = "UIImage", id = "map_graph", states = { default = { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = true, top = 164, bottom = 4, left = -85, right = 85, material = RegisterMaterial( "img_lobby_map_graph_bg" ), red = 1, green = 1, blue = 1, alpha = 0.75 } } }, { type = "UIPopulationMap", id = "population_map", states = { default = { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = true, top = 0, bottom = 0, left = 0, right = 0 } } }, { type = "UIText", id = "players_online_label", properties = { text = Engine.Localize( "@LUA_MENU_PLAYERS_ONLINE" ) }, states = { default = { alignment = LUI.Alignment.Left, font = CoD.TextSettings.NormalFont.Font, leftAnchor = true, rightAnchor = true, topAnchor = false, bottomAnchor = true, left = 6, right = 0, top = -50, bottom = -34, red = 0.39, green = 0.39, blue = 0.39, alpha = 1 } } }, { type = "UIText", id = "players_online", properties = { text = "4,443,235,012" }, states = { default = { alignment = LUI.Alignment.Left, font = CoD.TextSettings.NormalFont.Font, leftAnchor = true, rightAnchor = true, topAnchor = false, bottomAnchor = true, left = 0, right = 0, top = -50, bottom = -34, red = 0.6, green = 0.6, blue = 0.6, alpha = 1 } }, handlers = { menu_create = updateGlobalActivityMap, update_map_activity = updateGlobalActivityMap } }, { type = "UIImage", id = "map_graph_line", states = { default = { topAnchor = true, bottomAnchor = false, leftAnchor = true, rightAnchor = false, top = -23, bottom = 220, left = -8, right = 0, material = RegisterMaterial( "img_lobby_map_graph_line" ), red = 1, green = 1, blue = 1, alpha = 0.5 }, move1 = { topAnchor = true, bottomAnchor = false, leftAnchor = true, rightAnchor = false, top = -23, bottom = 220, left = -8, right = 0 }, move2 = { topAnchor = true, bottomAnchor = false, leftAnchor = true, rightAnchor = false, top = -23, bottom = 220, left = 340, right = 348 } }, handlers = { menu_create = MBh.EmitEvent( "start_map_scan" ), start_map_scan = MBh.AnimateLoop( { { "move1", 0 }, { "move2", 10000 } } ) } }, { type = "UIImage", id = "map_graph_brackets", states = { default = { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = false, top = 166, bottom = 4, left = -8, right = 4, material = RegisterMaterial( "img_lobby_map_graph_brackets" ), red = 1, green = 1, blue = 1, alpha = 1 }, move1 = { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = false, top = 166, bottom = 4, left = -8, right = 4 }, move2 = { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = false, top = 166, bottom = 4, left = 340, right = 352 } }, handlers = { menu_create = MBh.EmitEvent( "start_map_scan" ), start_map_scan = MBh.AnimateLoop( { { "move1", 0 }, { "move2", 10000 } } ) } }, { type = "UITimer", id = "map_scan_timer", properties = { event = "update_map", interval = 1000 } } } } end function theater_recording_widget() return { type = "UIImage", id = "theater_recording_widget_id", states = { default = { material = RegisterMaterial( "box_theater_bg" ), leftAnchor = true, rightAnchor = false, topAnchor = true, bottomAnchor = false, left = 790, right = 955, top = 651, bottom = 683 } }, children = { { type = "UIText", id = "theater_text_id", properties = { text = Engine.Localize( "@LUA_MENU_THEATER" ) }, states = { default = { alignment = LUI.Alignment.Left, font = CoD.TextSettings.NormalFont.Font, leftAnchor = true, rightAnchor = true, topAnchor = true, bottomAnchor = false, left = 8, right = 0, top = 8, bottom = 24, red = 0.39, green = 0.39, blue = 0.39 } } }, { type = "UIText", id = "recording_text_id", properties = { text = Engine.Localize( "@LUA_MENU_RECORDING" ) }, states = { default = { alignment = LUI.Alignment.Left, font = CoD.TextSettings.NormalFont.Font, leftAnchor = true, rightAnchor = true, topAnchor = true, bottomAnchor = false, left = 80, right = 0, top = 8, bottom = 24, red = Colors.cac_ability_text.r, green = Colors.cac_ability_text.g, blue = Colors.cac_ability_text.b } } }, { type = "UIText", id = "onoff_text_id", properties = { text = Engine.Localize( "@MENU_ON" ) }, states = { default = { alignment = LUI.Alignment.Left, font = CoD.TextSettings.NormalFont.Font, leftAnchor = true, rightAnchor = false, topAnchor = true, bottomAnchor = false, left = 137, right = 0, top = 8, bottom = 24, red = 0.39, green = 0.39, blue = 0.39 } }, handlers = { theater_widget_recording_on = function ( f7_arg0, f7_arg1 ) f7_arg0.setText( Engine.Localize( "@MENU_ON" ) ) end , theater_widget_recording_off = function ( f8_arg0, f8_arg1 ) f8_arg0.setText( Engine.Localize( "@MENU_OFF" ) ) end } }, { type = "UIImage", id = "recording_light_id", states = { default = { material = RegisterMaterial( "fluff_circle" ), leftAnchor = true, rightAnchor = false, topAnchor = true, bottomAnchor = true, left = 114, right = 129, top = 8, bottom = -8, red = 0.95, green = 0.42, blue = 0.31 } } } } } end function leaveprelobbywarning() return { type = "generic_yesno_popup", properties = { message_text = Engine.Localize( "@XBOXLIVE_LEAVEPARTYANDLOBBY" ), popup_title = Engine.Localize( "@MENU_NOTICE" ), yes_action = MBh.EmitEventToRoot( { name = "exit_live_lobby", immediate = true } ), default_focus_index = 2 } } end function leaveLobbyWarningYesAction( f10_arg0, f10_arg1 ) if AreWePrivatePartyHost() then Engine.Exec( "xstoplobbybackout leavelobbywarning", f10_arg1.controller ) else Engine.Exec( "xstopparty leavelobbywarning", f10_arg1.controller ) end Engine.Exec( "xblive_privatematch 0", f10_arg1.controller ) SetIsAliensSolo( false ) Engine.SetDvarBool( "squad_match", false ) if Lobby.GetBotsConnectType() > 0 then Lobby.SetBotsConnectType( 0 ) end if MLG.AreMLGRulesEnabled() then MLG.Toggle( f10_arg0, f10_arg1 ) end f10_arg0:dispatchEventToRoot( { name = "private_match_dvar_updated", controller = f10_arg1.controller } ) end function leavelobbywarning() return { type = "generic_yesno_popup", properties = { message_text = Engine.Localize( "@XBOXLIVE_LEAVELOBBY" ), popup_title = Engine.Localize( "@MENU_NOTICE" ), yes_action = MBh.DoMultiple( { leaveLobbyWarningYesAction, ExitLobby } ), default_focus_index = 2 } } end function leavelobbybadsquad() return { type = "generic_confirmation_popup", properties = { message_text = Engine.Localize( "@LUA_MENU_BAD_SQUAD" ), popup_title = Engine.Localize( "@MENU_NOTICE" ), confirmation_action = MBh.DoMultiple( { leaveLobbyWarningYesAction, ExitLobby } ) } } end function leavelobbybadsquadmap() return { type = "generic_confirmation_popup", properties = { message_text = Engine.Localize( "@PLATFORM_MISSINGMAP" ), popup_title = Engine.Localize( "@MENU_NOTICE" ), confirmation_action = MBh.DoMultiple( { leaveLobbyWarningYesAction, ExitLobby } ), cancel_will_close = false } } end function leaveLobbyAndPartyYesAction( f14_arg0, f14_arg1 ) local f14_local0 = Engine.Exec if f14_arg1.execNow then f14_local0 = Engine.ExecNow end f14_local0( "xstopparty leavelobbyandpartywarning" ) f14_local0( "xstopprivateparty" ) f14_local0( "xstartprivateparty" ) f14_local0( "xblive_privatematch 0" ) SetIsAliensSolo( false ) Engine.SetDvarBool( "squad_match", false ) if Lobby.GetBotsConnectType() > 0 then Lobby.SetBotsConnectType( 0 ) end if MLG.AreMLGRulesEnabled() then MLG.Toggle( f14_arg0, f14_arg1 ) end end function leaveLobbyAndPartyYesActionWithExitLobby( f15_arg0, f15_arg1 ) leaveLobbyAndPartyYesAction( f15_arg0, f15_arg1 ) ExitLobby( f15_arg0, f15_arg1 ) end function leavelobbyandpartywarning() return { type = "generic_yesno_popup", properties = { message_text = Engine.Localize( "@XBOXLIVE_LEAVEPARTYANDLOBBY" ), popup_title = Engine.Localize( "@MENU_NOTICE" ), yes_action = MBh.DoMultiple( { leaveLobbyAndPartyYesAction, ExitLobby } ), default_focus_index = 2 } } end function leaveLobbyBlockedPlayerWarningYesAction( f17_arg0, f17_arg1 ) if AreWePrivatePartyHost() then Engine.Exec( "xstoplobbybackout leavelobbyblockedplayerwarning", f17_arg1.controller ) else Engine.Exec( "xstopparty leavelobbyblockedplayerwarning", f17_arg1.controller ) end Engine.Exec( "xblive_privatematch 0" ) SetIsAliensSolo( false ) if Lobby.GetBotsConnectType() > 0 then Lobby.SetBotsConnectType( 0 ) end if MLG.AreMLGRulesEnabled() then MLG.Toggle( f17_arg0, f17_arg1 ) end end function leavelobbyblockedplayerwarning() return { type = "generic_yesno_popup", properties = { message_text = Engine.Localize( "@XBOXLIVE_LEAVELOBBYBLOCKEDPLAYER" ), popup_title = Engine.Localize( "@MENU_NOTICE" ), yes_action = MBh.DoMultiple( { leaveLobbyBlockedPlayerWarningYesAction, ExitLobby } ), default_focus_index = 2 } } end function ShouldShowMapInfo( f19_arg0 ) if IsPublicMatch() then if Lobby.HasVotePassed() or Engine.GetDvarBool( "squad_match" ) == true then f19_arg0:animateToState( "default", 200 ) else f19_arg0:animateToState( "hidden", 0 ) return end end end function MapInfoSetMapName( f20_arg0, f20_arg1 ) local f20_local0 = Lobby.GetMapName() local f20_local1 = CoD.TextSettings.BoldFont local f20_local2, f20_local3, f20_local4, f20_local5 = GetTextDimensions( f20_local0, f20_local1.Font, f20_local1.Height ) f20_arg0:registerAnimationState( "current", { leftAnchor = true, rightAnchor = false, topAnchor = true, bottomAnchor = true, left = 0, right = 20 + f20_local4 - f20_local2, top = 0, bottom = 0 } ) f20_arg0:setText( f20_local0 ) f20_arg0:animateToState( "current", 0 ) end function MapInfoSetGameMode( f21_arg0, f21_arg1 ) if IsPublicMatch() then if Lobby.HasVotePassed() or squad_mode == true then f21_arg0:animateToState( "default", 0 ) else f21_arg0:animateToState( "hidden", 0 ) return end end local f21_local0 = LUI.mp_menus.Aliens.FixGameModeTextForChaos( Lobby.GameTypeNameAbbreviated() ) local f21_local1 = CoD.TextSettings.NormalFont local f21_local2, f21_local3, f21_local4, f21_local5 = GetTextDimensions( f21_local0, f21_local1.Font, f21_local1.Height ) f21_arg0:registerAnimationState( "current", { leftAnchor = true, rightAnchor = false, topAnchor = true, bottomAnchor = true, left = 0, right = 20 + f21_local4 - f21_local2, top = 0, bottom = 0 } ) f21_arg0:setText( f21_local0 ) f21_arg0:animateToState( "current", 0 ) end function MapInfoSetExtinctionDifficulty( f22_arg0, f22_arg1 ) if not LUI.mp_menus.Aliens.ExtinctionHasDifficultySelection() then f22_arg0:animateToState( "hidden", 0 ) return elseif not Engine.IsAliensMode() then f22_arg0:animateToState( "hidden", 0 ) return elseif LUI.mp_menus.Aliens.IsChaosEnabled() then f22_arg0:animateToState( "hidden", 0 ) return elseif IsPublicMatch() then if Lobby.HasVotePassed() or squad_mode == true then f22_arg0:animateToState( "default", 0 ) else f22_arg0:animateToState( "hidden", 0 ) return end end local f22_local0 = LUI.mp_menus.Aliens.ExtinctionDifficultyDisplayText( LUI.mp_menus.Aliens.ExtinctionDetermineDifficulty() ) local f22_local1 = CoD.TextSettings.NormalFont local f22_local2, f22_local3, f22_local4, f22_local5 = GetTextDimensions( f22_local0, f22_local1.Font, f22_local1.Height ) f22_arg0:registerAnimationState( "current", { leftAnchor = true, rightAnchor = false, topAnchor = true, bottomAnchor = true, left = 0, right = 20 + f22_local4 - f22_local2, top = 0, bottom = 0, alpha = 1 } ) f22_arg0:setText( f22_local0 ) f22_arg0:animateToState( "current", 0 ) end function map_info_text() local f23_local0, f23_local1, f23_local2, f23_local3 = GetTextDimensions( text, CoD.TextSettings.BoldFont.Font, CoD.TextSettings.BoldFont.Height ) local f23_local4, f23_local5, f23_local6, f23_local7 = GetTextDimensions( text, CoD.TextSettings.NormalFont.Font, CoD.TextSettings.NormalFont.Height ) local f23_local8 = 20 + f23_local2 - f23_local0 local f23_local9 = 20 + f23_local6 - f23_local4 return { type = "UIElement", states = { default = { leftAnchor = true, rightAnchor = true, topAnchor = true, bottomAnchor = false, left = 100, right = 0, top = 594, bottom = 594 + CoD.TextSettings.NormalFont.Height, alignment = LUI.Alignment.Left, alpha = 1 }, hidden = { alpha = 0 } }, handlers = { update_info_text = ShouldShowMapInfo, menu_create = ShouldShowMapInfo }, children = { { type = "UIImage", id = "bg_bot", states = { default = { material = RegisterMaterial( "box_white_gradient_bot" ), leftAnchor = true, rightAnchor = true, topAnchor = false, bottomAnchor = true, left = -200, right = 0, top = -38, bottom = 5, red = 0, green = 0, blue = 0, alpha = 0.5 } } }, { type = "UIHorizontalList", states = { default = { leftAnchor = true, rightAnchor = true, topAnchor = true, bottomAnchor = true, left = 0, right = 0, top = 0, bottom = 0 } }, children = { { type = "UIText", id = "map_name_text", properties = { text = Lobby.GetMapName() }, states = { default = { font = CoD.TextSettings.BoldFont.Font, alignment = LUI.Alignment.Center, leftAnchor = true, rightAnchor = false, topAnchor = true, bottomAnchor = true, left = 0, right = f23_local8, top = 0, bottom = 0, red = 1, green = 1, blue = 1, alpha = 1 }, hidden = { alpha = 0 } }, handlers = { update_info_text = MapInfoSetMapName, menu_create = MapInfoSetMapName } }, { type = "UIText", id = "game_mode_text", properties = { text = Lobby.GameTypeNameAbbreviated() }, states = { default = { font = CoD.TextSettings.NormalFont.Font, alignment = LUI.Alignment.Center, leftAnchor = true, rightAnchor = false, topAnchor = true, bottomAnchor = true, left = 0, right = f23_local9, top = 0, bottom = 0, red = 0.7, green = 0.7, blue = 0.7, alpha = 1 }, hidden = { alpha = 0 } }, handlers = { update_info_text = MapInfoSetGameMode, menu_create = MapInfoSetGameMode } }, { type = "UIText", id = "extinction_difficulty_text", properties = { text = "" }, states = { default = { font = CoD.TextSettings.NormalFont.Font, alignment = LUI.Alignment.Center, leftAnchor = true, rightAnchor = false, topAnchor = true, bottomAnchor = true, left = 0, right = f23_local9, top = 0, bottom = 0, red = 0.7, green = 0.7, blue = 0.7, alpha = 1 }, hidden = { alpha = 0 } }, handlers = { update_info_text = MapInfoSetExtinctionDifficulty, menu_create = MapInfoSetExtinctionDifficulty } } } }, { type = "UITimer", id = "map_info_text_timer_id", properties = { event = { name = "update_info_text", dispatchChildren = true }, interval = 200, disposable = false } } } } end function lobby_status( menu, controller ) local self = LUI.UIElement.new() self.id = "lobby_status_widget_id" self:registerAnimationState( "default", { leftAnchor = true, rightAnchor = false, topAnchor = true, bottomAnchor = true, left = 655, width = 525, top = 43, bottom = 0, alpha = 1 } ) self:registerAnimationState( "hidden", { alpha = 0 } ) self:animateToState( "default" ) local f24_local1 = LUI.UIText.new() f24_local1.id = "status_text_line_one" f24_local1:registerAnimationState( "default", CoD.ColorizeState( Colors.primary_text_color, { leftAnchor = true, rightAnchor = true, topAnchor = true, bottomAnchor = false, left = 0, right = 0, top = -10, height = CoD.TextSettings.NormalFont.Height, font = CoD.TextSettings.NormalFont.Font, alignment = LUI.Alignment.Right, alpha = 1 } ) ) f24_local1:registerAnimationState( "hidden", { alpha = 0 } ) f24_local1:animateToState( "default" ) f24_local1:registerEventHandler( "lobby_page_enter", function ( element, event ) element:animateToState( "default", event.animTime or 0 ) end ) self:addElement( f24_local1 ) local f24_local2 = function ( f26_arg0, f26_arg1 ) f24_local1:setText( Lobby.GetPartyStatus() ) end local f24_local3 = LUI.UITimer.new( 200, { name = "refresh_lobby_status_text" }, nil, false, self, false ) f24_local3.id = "lobby_status_refresh_timer_id" self:addElement( f24_local3 ) self:registerEventHandler( "menu_create", f24_local2 ) self:registerEventHandler( "refresh_lobby_status_text", f24_local2 ) self:registerEventHandler( "lobby_page_leave", function ( element, event ) element:animateToState( "hidden", event.animTime or 0 ) end ) self:registerEventHandler( "lobby_page_enter", function ( element, event ) element:animateToState( "default", event.animTime or 0 ) end ) return self end function lobby_search_status( menu, controller ) local self = LUI.UIElement.new() self.id = "lobby_search_status_widget_id" self:registerAnimationState( "default", { leftAnchor = true, rightAnchor = false, topAnchor = true, bottomAnchor = true, left = 655, width = 525, top = 43, bottom = 0, alpha = 1 } ) self:registerAnimationState( "hidden", { alpha = 0 } ) if SvS.IsSvS() and SvS.GetCurrentSquadModeInfo() == SvS.SquadModes.SquadAssault then self:animateToState( "hidden" ) else self:animateToState( "default" ) end local f29_local1 = LUI.UIText.new() f29_local1.id = "search_status_text_line_two" f29_local1:registerAnimationState( "default", CoD.ColorizeState( Colors.white, { leftAnchor = true, rightAnchor = true, topAnchor = true, bottomAnchor = false, left = 0, right = 0, top = 50, height = CoD.TextSettings.NormalFont.Height, font = CoD.TextSettings.NormalFont.Font, alignment = LUI.Alignment.Left, alpha = 1 } ) ) f29_local1:registerAnimationState( "hidden", { alpha = 0 } ) f29_local1:animateToState( "default" ) self:addElement( f29_local1 ) local f29_local2 = function ( f30_arg0, f30_arg1 ) f29_local1:setText( Lobby.GetSearchStatus() ) end local f29_local3 = LUI.UITimer.new( 200, { name = "refresh_lobby_search_status_text" }, nil, false, self, false ) f29_local3.id = "lobby_search_status_refresh_timer_id" self:addElement( f29_local3 ) self:registerEventHandler( "menu_create", f29_local2 ) self:registerEventHandler( "refresh_lobby_search_status_text", f29_local2 ) self:registerEventHandler( "lobby_page_leave", function ( element, event ) element:animateToState( "hidden", event.animTime or 0 ) end ) self:registerEventHandler( "lobby_page_enter", function ( element, event ) element:animateToState( "default", event.animTime or 0 ) end ) return self end function lobby_loading_widget() local f33_local0 = Engine.GetDvarBool( "wideScreen" ) if not Engine.IsAliensMode() then local f33_local1 = { type = "UIImage", id = "empty_load_bar_id" } local f33_local2 = {} local f33_local3 = { leftAnchor = false, rightAnchor = true, topAnchor = false, bottomAnchor = true } local f33_local4 if f33_local0 then f33_local4 = -208 if not f33_local4 then else f33_local3.left = f33_local4 if f33_local0 then f33_local4 = -73 if not f33_local4 then else f33_local3.right = f33_local4 f33_local3.top = -228 f33_local3.bottom = -93 f33_local3.alpha = 0 f33_local3.material = RegisterMaterial( "img_load_diamond_000" ) f33_local2.default = f33_local3 f33_local3 = { leftAnchor = false, rightAnchor = true, topAnchor = false, bottomAnchor = true } if f33_local0 then f33_local4 = -208 if not f33_local4 then else f33_local3.left = f33_local4 if f33_local0 then f33_local4 = -73 if not f33_local4 then else f33_local3.right = f33_local4 f33_local3.top = -228 f33_local3.bottom = -93 f33_local3.alpha = 1 f33_local2.visible = f33_local3 f33_local1.states = f33_local2 f33_local1.children = { { type = "UILoadingDots", id = "loading_dots", states = { default = { leftAnchor = false, rightAnchor = false, topAnchor = true, bottomAnchor = false, left = -42, right = 20, top = 21, bottom = 46, alpha = 0.4, font = CoD.TextSettings.ExtraBigFont.Font } } } } f33_local1.handlers = { lobby_transition_to_game = MBh.AnimateToState( "visible", 500 ), lobby_rollback_transition_to_game = MBh.AnimateToState( "default", Lobby.TransitionTime ) } return f33_local1 end end f33_local4 = -162 end end f33_local4 = -296 end end f33_local4 = -162 end end f33_local4 = -296 else return { type = "UIImage", id = "empty_load_bar_id", states = { default = CoD.ColorizeState( Colors.white, { leftAnchor = true, rightAnchor = true, topAnchor = false, bottomAnchor = true, left = 121, right = -237, top = -91, bottom = -87, alpha = 0, material = RegisterMaterial( "white" ) } ), visible = { alpha = 0.25 } }, handlers = { lobby_transition_to_game = MBh.AnimateToState( "visible", 500, true ), lobby_rollback_transition_to_game = MBh.AnimateToState( "default", Lobby.TransitionTime ) } } end end function lobby_game_type_title() return { type = "UIText", id = "game_type_name_id", properties = { text = "", textStyle = CoD.TextStyle.OutlinedMore }, states = { default = { leftAnchor = true, rightAnchor = false, topAnchor = true, bottomAnchor = false, left = 202, right = 438, top = 56, bottom = 96, alpha = 0, font = CoD.TextSettings.ExtraBigFont.Font }, visible = { alpha = 1 } }, handlers = { lobby_transition_to_game = function ( f35_arg0, f35_arg1 ) if not Engine.IsAliensMode() then if SvS.IsSvS() then local f35_local0 = Engine.GetDvarBool( "squad_match" ) local f35_local1 = Squad.GetEnemyGameMode() end f35_arg0:setText( Engine.Localize( Engine.TableLookup( GameTypesTable.File, GameTypesTable.Cols.Ref, f35_local0 and f35_local1 or Engine.GetDvarString( "ui_gametype" ), GameTypesTable.Cols.Name ) ) ) else f35_arg0:setText( Lobby.GameTypeNameAbbreviated() ) end f35_arg0:animateToState( "visible", 500 ) end , lobby_rollback_transition_to_game = MBh.AnimateToState( "default", Lobby.TransitionTime ) } } end function GetLobbyIconMaterial( f36_arg0 ) if f36_arg0 and Engine.GetDvarString( "playlist_image" ) then return RegisterMaterial( Engine.GetDvarString( "playlist_image" ) ) else return RegisterMaterial( GetGameTypeIcon( Engine.GetDvarString( "ui_gametype" ) ) ) end end function lobby_game_type_icon( menu, controller ) local self = LUI.UIImage.new() self.id = "game_type_icon_id" if not controller then controller = {} end self:registerAnimationState( "default", { leftAnchor = true, rightAnchor = false, topAnchor = true, bottomAnchor = false, left = 88, right = 217, top = 24, bottom = 148, alpha = 0, material = GetLobbyIconMaterial( controller.online ) } ) self:animateToState( "default" ) self:registerEventHandler( "lobby_transition_to_game", function ( element, event ) element:registerAnimationState( "visible", { alpha = 1, material = GetLobbyIconMaterial( element.properties.online ) } ) element:animateToState( "visible", 500 ) end ) self:registerEventHandler( "lobby_rollback_transition_to_game", function ( element, event ) element:animateToState( "default", Lobby.TransitionTime ) end ) return self end function character_playing_as( menu, controller ) local self = LUI.UIElement.new() self.id = "character_playing_as_widget_id" self:registerAnimationState( "default", { topAnchor = true, leftAnchor = false, bottomAnchor = false, rightAnchor = true, top = 55, right = -100, height = CoD.TextSettings.NormalFont.Height, width = 520, alpha = 1 } ) self:registerAnimationState( "hidden", { alpha = 0 } ) self:animateToState( "default" ) if not Engine.IsAliensMode() then local f40_local1 = Engine.GetFirstActiveController() local f40_local2 = Cac.GetActiveSquadMember( f40_local1 ) local f40_local3 = Cac.GetSquadMemberName( f40_local1, Cac.GetSquadLoc(), f40_local2 ) or "" local f40_local4 = Engine.Localize( "@LUA_MENU_PLAYING_AS", Engine.MarkLocalized( f40_local3 ) ) local f40_local5 = LUI.UIMarqueeText.new() f40_local5.id = "character_playing_as_text" local f40_local6 = f40_local5 local f40_local7 = f40_local5.setText if f40_local3 then local f40_local8 = f40_local4 end f40_local7( f40_local6, f40_local8 or "" ) f40_local5:registerAnimationState( "default", CoD.ColorizeState( Colors.white, { topAnchor = true, leftAnchor = true, bottomAnchor = false, rightAnchor = true, top = 0, right = 0, height = CoD.TextSettings.NormalFont.Height, font = CoD.TextSettings.NormalFont.Font, alignment = LUI.Alignment.Right } ) ) f40_local5:animateToState( "default" ) f40_local5:registerEventHandler( "private_match_dvar_updated", function ( element, event ) local f41_local0 = Cac.GetSquadMemberName( f40_local1, Cac.GetSquadLoc(), f40_local2 ) or "" local f41_local1 = Engine.Localize( "@LUA_MENU_PLAYING_AS", Engine.MarkLocalized( f41_local0 ) ) local f41_local2 = element local f41_local3 = element.setText if f41_local0 then local f41_local4 = f41_local1 end f41_local3( f41_local2, f41_local4 or "" ) end ) self:addElement( f40_local5 ) f40_local5:registerEventHandler( "online_data_finished", function ( element, event ) local f42_local0 = LUI.FlowManager.GetMenuScopedDataFromElement( element ) local f42_local1 = f42_local0.exclusiveController if not f42_local1 then f42_local1 = Engine.GetFirstActiveController() end local f42_local2 = Cac.GetSquadMemberName( f42_local1, Cac.GetSquadLoc(), Cac.GetActiveSquadMember( f42_local1 ) ) or "" local f42_local3 = Engine.Localize( "@LUA_MENU_PLAYING_AS", Engine.MarkLocalized( f42_local2 ) ) local f42_local4 = element local f42_local5 = element.setText if f42_local2 then local f42_local6 = f42_local3 end f42_local5( f42_local4, f42_local6 or "" ) end ) f40_local5:registerEventHandler( "menu_create", function ( element, event ) local f43_local0 = LUI.FlowManager.GetMenuScopedDataFromElement( element ) local f43_local1 = f43_local0.exclusiveController if not f43_local1 then f43_local1 = Engine.GetFirstActiveController() end local f43_local2 = Cac.GetSquadMemberName( f43_local1, Cac.GetSquadLoc(), Cac.GetActiveSquadMember( f43_local1 ) ) or "" local f43_local3 = Engine.Localize( "@LUA_MENU_PLAYING_AS", Engine.MarkLocalized( f43_local2 ) ) local f43_local4 = element local f43_local5 = element.setText if f43_local2 then local f43_local6 = f43_local3 end f43_local5( f43_local4, f43_local6 or "" ) end ) end return self end function UpdateRestrictionsIcon( f44_arg0, f44_arg1 ) local f44_local0 = f44_arg1.controller if not f44_arg1.controller then f44_local0 = Engine.GetFirstActiveController() end local f44_local1 = "loadouts" local f44_local2 = "privateMatchSquadMembers" local f44_local3 = Cac.GetActiveSquadMember( f44_local0 ) local f44_local4 = true if MatchRules.AllowCustomClasses( f44_local1 ) then for f44_local5 = 0, Cac.Settings.DataLoc[f44_local2].maxClassSlots - 1, 1 do if not MatchRules.CustomClassIsRestricted( f44_local0, CoD.GetStatsGroupForGameMode(), f44_local2, f44_local3, f44_local1, f44_local5 ) then f44_local4 = false break end end if f44_local4 then f44_arg0:animateToState( f44_arg1.inFocus and "expand" or "default" ) f44_arg0:animateToState( "visible" ) end f44_arg0:animateToState( "default" ) end end function lobby_restriction_icon( f45_arg0, f45_arg1 ) return { type = "UIImage", id = "weapon_restriction_icon", states = { default = { rightAnchor = true, leftAnchor = false, topAnchor = false, bottomAnchor = true, right = 32, bottom = -7, width = 32, height = 32, material = RegisterMaterial( "icon_new_3" ), alpha = 0 }, expand = { rightAnchor = true, leftAnchor = false, topAnchor = false, bottomAnchor = true, right = 71, bottom = -7, width = 32, height = 32, material = RegisterMaterial( "icon_new_3" ), alpha = 0 }, visible = { alpha = 1 } }, handlers = { update_restrictions_icon = UpdateRestrictionsIcon, menu_create = UpdateRestrictionsIcon } } end LUI.MenuBuilder.registerType( "lobby_status", lobby_status ) LUI.MenuBuilder.registerType( "lobby_search_status", lobby_search_status ) LUI.MenuBuilder.registerDef( "theater_recording_widget", theater_recording_widget ) LUI.MenuBuilder.registerDef( "leaveprelobbywarning", leaveprelobbywarning ) LUI.MenuBuilder.registerDef( "leavelobbywarning", leavelobbywarning ) LUI.MenuBuilder.registerDef( "leavelobbyandpartywarning", leavelobbyandpartywarning ) LUI.MenuBuilder.registerDef( "global_activity_map", global_activity_map ) LUI.MenuBuilder.registerDef( "mpLobbyWidgets", mpLobbyWidgets ) LUI.MenuBuilder.registerDef( "rank_icon_name", rank_icon_name ) LUI.MenuBuilder.registerDef( "leavelobbyblockedplayerwarning", leavelobbyblockedplayerwarning ) LUI.MenuBuilder.registerDef( "map_info_text", map_info_text ) LUI.MenuBuilder.registerDef( "map_digital_anim", map_digital_anim ) LUI.MenuBuilder.registerDef( "leavelobbybadsquad", leavelobbybadsquad ) LUI.MenuBuilder.registerDef( "lobby_loading_widget", lobby_loading_widget ) LUI.MenuBuilder.registerDef( "lobby_game_type_title", lobby_game_type_title ) LUI.MenuBuilder.registerType( "lobby_game_type_icon", lobby_game_type_icon ) LUI.MenuBuilder.registerType( "character_playing_as", character_playing_as ) LUI.MenuBuilder.registerDef( "leavelobbybadsquadmap", leavelobbybadsquadmap ) LUI.MenuBuilder.registerDef( "lobby_restriction_icon", lobby_restriction_icon ) LockTable( _M )