local f0_local0 = module local f0_local1, f0_local2 = ... f0_local0( f0_local1, package.seeall ) CoD.PrintModuleLoad( _NAME ) f0_local0 = { TeamWindow = { Top = 90, Bottom = -80, Width = 400, SideMargin = 175, XPBannerHeight = 52, FriendlyBGColor = Colors.cyan, EnemyBGColor = Colors.orange, InfoBar = { Height = CoD.TextSettings.NormalFont.Height + 2, BreakWidth = 220, CapWidth = 32, Alpha = 0.5, TextMargin = 10, TextTop = 1, DarkColor = { r = 0, g = 0, b = 0, a = 0.15 }, LightColor = { r = 1, g = 1, b = 1, a = 0.05 } }, MemberInfo = { Height = 54, EdgeMargin = 8, TextMargin = 64, BarHeight = 2, LineOneTop = 4, LineTwoTop = 7 + CoD.TextSettings.NormalFont.Height, RankTextTop = 16, RankIconTop = 12, RankTextWidth = 24, RankIconSize = 28, WeaponIconTop = 17, WeaponIconWidth = 76, WeaponIconHeight = 38, MVPOffset = 10, MVPWidth = 64, MVPHeight = 32 } }, CompareStats = { WinsTop = 228, LossesTop = 256, StreakTop = 284, BGWidth = 65, ArrowSize = 6, BGColors = { Better = { r = 0, g = 1, b = 0 }, Worse = { r = 1, g = 0, b = 0 }, Same = Colors.white }, TextColors = { Better = { r = 0.04, g = 0.94, b = 0.04 }, Worse = { r = 0.94, g = 0.04, b = 0.04 }, Same = Colors.white } } } function CreateDetailMenu( f1_arg0, f1_arg1 ) local f1_local0 = f1_arg0.properties.reportData if not f1_local0 then f1_local0 = { enemyPlayercardProps = {} } end f1_arg0:dispatchEventToRoot( LUI.ButtonHelperText.CommonEvents.addBackButton ) local f1_local1 = f1_arg0:getChildById( "squad_report_detail_local_player" ) local f1_local2 = f1_arg0:getChildById( "squad_report_detail_enemy_player" ) local f1_local3 = Cac.GetLocalRankedPlayercardInfo( f1_arg0.properties.controller ) f1_local3.name = "update_playercard" f1_local3.patchEmblem = f1_local3.patch f1_local1:processEvent( f1_local3 ) f1_local2:processEvent( { name = "update_playercard", gamertag = f1_local0.enemyPlayercardProps.gamertag, clantag = f1_local0.enemyPlayercardProps.clanTag, rank = f1_local0.enemyPlayercardProps.rank, prestige = f1_local0.enemyPlayercardProps.prestige, background = f1_local0.enemyPlayercardProps.background, patchEmblem = f1_local0.enemyPlayercardProps.patchEmblem, patchShape = f1_local0.enemyPlayercardProps.patchShape } ) end function OutcomeTextChildFeeder( f2_arg0 ) local f2_local0 = {} local f2_local1 = f2_arg0.reportData local f2_local2 = SvS.GetReportOutcomeLayoutInfo( f2_local1.matchOutcome ) f2_local0[#f2_local0 + 1] = { type = "UIText", id = "squad_report_detail_result_text", states = { default = CoD.ColorizeState( f2_local2.textColor, { leftAnchor = true, rightAnchor = true, topAnchor = true, bottomAnchor = false, left = 0, right = 0, top = 60, bottom = 60 + CoD.TextSettings.BigFont.Height, font = CoD.TextSettings.BigFont.Font, alignment = textAlign } ) }, properties = { text = f2_local2.text } } f2_local0[#f2_local0 + 1] = { type = "UIText", id = "squad_report_detail_clock_text", states = { default = CoD.ColorizeState( Colors.secondary_text_color, { leftAnchor = true, rightAnchor = true, topAnchor = true, bottomAnchor = false, left = 0, right = 0, top = 35, bottom = 35 + CoD.TextSettings.NormalFont.Height, font = CoD.TextSettings.NormalFont.Font, alignment = textAlign } ) }, properties = { text = f2_local1.timeString } } return f2_local0 end function CompareStatsFeeder( f3_arg0 ) local f3_local0 = {} local f3_local1 = f3_arg0.reportData if not f3_local1.isCompare then return f3_local0 else f3_local0[#f3_local0 + 1] = { type = "squad_report_detail_stat_compare", id = "squad_report_detail_stat_compare_wins", states = { default = CoD.ColorizeState( Colors.window_title_text_color, { leftAnchor = true, rightAnchor = true, topAnchor = true, bottomAnchor = false, left = f0_local0.TeamWindow.SideMargin + f0_local0.TeamWindow.Width, right = -f0_local0.TeamWindow.SideMargin - f0_local0.TeamWindow.Width, top = f0_local0.CompareStats.WinsTop, bottom = f0_local0.CompareStats.WinsTop + f0_local0.TeamWindow.InfoBar.Height } ) }, properties = { value = f3_local1.yourWins - f3_local1.enemyWins } } f3_local0[#f3_local0 + 1] = { type = "squad_report_detail_stat_compare", id = "squad_report_detail_stat_compare_losses", states = { default = CoD.ColorizeState( Colors.window_title_text_color, { leftAnchor = true, rightAnchor = true, topAnchor = true, bottomAnchor = false, left = f0_local0.TeamWindow.SideMargin + f0_local0.TeamWindow.Width, right = -f0_local0.TeamWindow.SideMargin - f0_local0.TeamWindow.Width, top = f0_local0.CompareStats.LossesTop, bottom = f0_local0.CompareStats.LossesTop + f0_local0.TeamWindow.InfoBar.Height } ) }, properties = { value = f3_local1.enemyLosses - f3_local1.yourLosses } } f3_local0[#f3_local0 + 1] = { type = "squad_report_detail_stat_compare", id = "squad_report_detail_stat_compare_streak", states = { default = CoD.ColorizeState( Colors.window_title_text_color, { leftAnchor = true, rightAnchor = true, topAnchor = true, bottomAnchor = false, left = f0_local0.TeamWindow.SideMargin + f0_local0.TeamWindow.Width, right = -f0_local0.TeamWindow.SideMargin - f0_local0.TeamWindow.Width, top = f0_local0.CompareStats.StreakTop, bottom = f0_local0.CompareStats.StreakTop + f0_local0.TeamWindow.InfoBar.Height } ) }, properties = { value = f3_local1.yourWinStreak - f3_local1.enemyWinStreak } } return f3_local0 end end function squad_report_detail_menu() return { type = "UIElement", id = "squad_report_detail_menu", states = { default = { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = true, top = 0, bottom = 0, left = 0, right = 0 } }, handlers = { menu_create = CreateDetailMenu }, children = { { type = "UIElement", id = "squad_report_detail_title_info_container", states = { default = { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = true, top = 0, bottom = 0, left = 0, right = 0 } } }, { type = "generic_menu_title", id = "squad_report_detail_title_text_id", properties = { menu_title = Engine.Localize( "@LUA_MENU_SQUAD_COMPARE_CAPS" ) } }, { type = "UIElement", states = { default = { topAnchor = true, bottomAnchor = true, leftAnchor = false, rightAnchor = false, top = f0_local0.TeamWindow.Top, bottom = f0_local0.TeamWindow.Bottom, width = 200, alpha = 0.5 } }, children = { { type = "UIImage", states = { default = CoD.ColorizeState( Colors.black, { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = true, top = 0, bottom = -200, left = 0, right = 0, material = RegisterMaterial( "box_white_gradient_bot" ) } ) } }, { type = "UIImage", states = { default = CoD.ColorizeState( Colors.black, { topAnchor = false, bottomAnchor = true, leftAnchor = true, rightAnchor = true, top = -200, bottom = 0, left = 0, right = 0, material = RegisterMaterial( "white" ) } ) } } } }, { type = "squad_report_detail_team_window", id = "squad_report_detail_local_player", states = { default = { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = false, top = f0_local0.TeamWindow.Top, bottom = f0_local0.TeamWindow.Bottom, left = f0_local0.TeamWindow.SideMargin, right = f0_local0.TeamWindow.SideMargin + f0_local0.TeamWindow.Width } }, properties = { isEnemy = false } }, { type = "squad_report_detail_team_window", id = "squad_report_detail_enemy_player", states = { default = { topAnchor = true, bottomAnchor = true, leftAnchor = false, rightAnchor = true, top = f0_local0.TeamWindow.Top, bottom = f0_local0.TeamWindow.Bottom, left = -f0_local0.TeamWindow.SideMargin - f0_local0.TeamWindow.Width, right = -f0_local0.TeamWindow.SideMargin } }, properties = { isEnemy = true } }, { type = "UIText", id = "squad_report_detail_vs_text", states = { default = CoD.ColorizeState( Colors.window_title_text_color, { leftAnchor = true, rightAnchor = true, topAnchor = true, bottomAnchor = false, left = 0, right = 0, top = 160, height = CoD.TextSettings.ExtraBigFont.Height, font = CoD.TextSettings.ExtraBigFont.Font, alignment = textAlign, textStyle = CoD.TextStyle.ShadowedMore } ) }, properties = { text = Engine.Localize( "LUA_MENU_VERSUS" ), textStyle = CoD.TextStyle.Shadowed } }, { type = "UIElement", id = "squad_report_detail_compare_stats_container", states = { default = CoD.ColorizeState( Colors.window_title_text_color, { leftAnchor = true, rightAnchor = true, topAnchor = true, bottomAnchor = true, left = 0, right = 0, top = 0, bottom = 0 } ) }, childrenFeeder = CompareStatsFeeder }, { type = "button_helper_text_main", id = "squad_report_detail_button_helper_text_id" }, { type = "online_friends_widget", id = "squad_report_detail_friends_widget_id" }, { type = "generic_back_button" } } } end function InfoBarChildFeeder( f5_arg0 ) local f5_local0 = {} local f5_local1 = f5_arg0.isEnemy or false local f5_local2 = f5_arg0.infoBar or 0 local f5_local3 = f0_local0.TeamWindow.InfoBar local f5_local4 = 9 local f5_local5, f5_local6, f5_local7, f5_local8, f5_local9, f5_local10, f5_local11, f5_local12, f5_local13, f5_local14 = nil if f5_local1 then f5_local5 = f0_local0.TeamWindow.Width - f5_local3.BreakWidth f5_local6 = 0 f5_local7 = 0 f5_local8 = f5_local3.Height f5_local9 = -f5_local3.Height f5_local10 = f5_local3.LightColor f5_local11 = f5_local3.DarkColor f5_local12 = LUI.Alignment.Right f5_local13 = 0 f5_local14 = f5_local5 else f5_local5 = f5_local3.BreakWidth - f5_local3.CapWidth f5_local6 = f5_local3.Height f5_local7 = -f5_local3.Height f5_local8 = 0 f5_local9 = 0 f5_local10 = f5_local3.DarkColor f5_local11 = f5_local3.LightColor f5_local12 = LUI.Alignment.Left f5_local13 = f5_local5 + f5_local3.CapWidth + f5_local4 f5_local14 = f5_local3.Width end local f5_local15 = f5_local5 + f5_local3.CapWidth f5_local0[#f5_local0 + 1] = { type = "UIImage", id = "report_detail_infoBar_bg_left", states = { default = CoD.ColorizeState( f5_local10, { material = RegisterMaterial( "white" ), topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = false, top = 0, bottom = 0, left = 0, right = f5_local5, alpha = f5_local3.Alpha } ) } } f5_local0[#f5_local0 + 1] = { type = "UIImage", id = "report_detail_infoBar_bg_left_cap", states = { default = CoD.ColorizeState( f5_local10, { material = RegisterMaterial( "box_angle_rtcap" ), topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = false, top = f5_local6, bottom = f5_local7, left = f5_local5, right = f5_local15, alpha = f5_local3.Alpha } ) } } f5_local0[#f5_local0 + 1] = { type = "UIImage", id = "report_detail_infoBar_bg_right_cap", states = { default = CoD.ColorizeState( f5_local11, { material = RegisterMaterial( "box_angle_ltcap" ), topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = false, top = f5_local8, bottom = f5_local9, left = f5_local5 + f5_local4, right = f5_local15 + f5_local4, alpha = f5_local3.Alpha } ) } } f5_local0[#f5_local0 + 1] = { type = "UIImage", id = "report_detail_infoBar_bg_right", states = { default = CoD.ColorizeState( f5_local11, { material = RegisterMaterial( "white" ), topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = true, top = 0, bottom = 0, left = f5_local15 + f5_local4, right = 0, alpha = f5_local3.Alpha } ) } } f5_local0[#f5_local0 + 1] = { type = "UIText", id = "report_detail_infoBar_label_text", states = { default = CoD.ColorizeState( Colors.secondary_text_color, { leftAnchor = true, rightAnchor = true, topAnchor = true, bottomAnchor = false, left = f5_local3.TextMargin, right = -f5_local3.TextMargin, top = f5_local3.TextTop, bottom = f5_local3.TextTop + CoD.TextSettings.NormalFont.Height, font = CoD.TextSettings.NormalFont.Font, alignment = f5_local12 } ) }, properties = { text = MBh.Property( "labelText" ) } } f5_local0[#f5_local0 + 1] = { type = "UIText", id = "report_detail_infoBar_value_text", states = { default = CoD.ColorizeState( Colors.primary_text_color, { leftAnchor = true, rightAnchor = false, topAnchor = true, bottomAnchor = false, left = f5_local13, right = f5_local14, top = f5_local3.TextTop, bottom = f5_local3.TextTop + CoD.TextSettings.NormalFont.Height, font = CoD.TextSettings.NormalFont.Font, alignment = f5_local12 } ) }, properties = { text = MBh.Property( "valueText" ) } } return f5_local0 end function MemberListFeeder( f6_arg0 ) local f6_local0 = {} local f6_local1 = f6_arg0.isEnemy or false local f6_local2 = f6_arg0.reportData or {} local f6_local3 = f0_local0.TeamWindow.MemberInfo local f6_local4, f6_local5, f6_local6, f6_local7, f6_local8, f6_local9, f6_local10, f6_local11, f6_local12, f6_local13, f6_local14 = nil if f6_local1 then f6_local4 = f6_local2.enemyTeam f6_local6 = f0_local0.TeamWindow.Width - f6_local3.RankTextWidth + f6_local3.EdgeMargin * 2 f6_local7 = f0_local0.TeamWindow.Width - f6_local3.RankTextWidth + f6_local3.RankIconSize + f6_local3.EdgeMargin * 2 f6_local8 = f6_local3.WeaponIconWidth + f6_local3.EdgeMargin f6_local9 = f0_local0.TeamWindow.Width - f6_local3.TextMargin + f6_local3.EdgeMargin f6_local10 = LUI.Alignment.Right f6_local11 = f6_local3.EdgeMargin f6_local12 = f0_local0.TeamWindow.Width + f6_local3.MVPOffset f6_local13 = f0_local0.TeamWindow.EnemyBGColor f6_local14 = f0_local0.TeamWindow.EnemyBGColor else f6_local4 = f6_local2.yourTeam f6_local6 = f6_local3.EdgeMargin f6_local7 = f6_local3.EdgeMargin + f6_local3.RankTextWidth f6_local8 = f6_local3.TextMargin f6_local9 = f0_local0.TeamWindow.Width - f6_local3.WeaponIconWidth + f6_local3.EdgeMargin * 2 f6_local10 = LUI.Alignment.Left f6_local11 = f0_local0.TeamWindow.Width - f6_local3.WeaponIconWidth + f6_local3.EdgeMargin * 2 f6_local12 = -1 * (f6_local3.MVPOffset + f6_local3.MVPWidth + f6_local3.EdgeMargin) f6_local13 = f0_local0.TeamWindow.FriendlyBGColor f6_local14 = f0_local0.TeamWindow.FriendlyBGColor end local f6_local15 = 0 local f6_local16 = 0 for f6_local17 = 1, SvS.MaxSquadSize, 1 do local f6_local20 = f6_local4[f6_local17] if f6_local16 < f6_local20.rank then f6_local15 = f6_local17 f6_local16 = f6_local20.rank end end for f6_local17 = 1, SvS.MaxSquadSize, 1 do local f6_local20 = f6_local4[f6_local17] local f6_local21 = Squad.GetWeaponNameFromIndex and Squad.GetWeaponNameFromIndex( f6_local20.weaponIndex ) or "" local f6_local22 = Cac.GetWeaponName( f6_local21 ) or "" local f6_local23 = Cac.GetWeaponProfileImage( f6_local21 ) or "white" local f6_local24 = f6_local17 == f6_local15 local f6_local25 = { [#f6_local25 + 1] = { type = "UIImage", id = "report_detail_member_bg", states = { default = CoD.ColorizeState( f6_local14, { material = RegisterMaterial( "white" ), topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = true, top = 0, bottom = 0, left = 0, right = 0, alpha = 0.1 } ) } } } local f6_local26 = #f6_local25 + 1 local f6_local27 = { type = "UIMarqueeText", id = "report_detail_member_name" } local f6_local28 = {} local f6_local29 = CoD.ColorizeState if f6_local24 then local f6_local30 = f6_local13 end f6_local28.default = f6_local29( f6_local30 or Colors.primary_text_color, { leftAnchor = true, rightAnchor = false, topAnchor = true, bottomAnchor = false, left = f6_local8, right = f6_local9, top = f6_local3.LineOneTop, bottom = f6_local3.LineOneTop + CoD.TextSettings.NormalFont.Height, font = CoD.TextSettings.NormalFont.Font, alignment = f6_local10 } ) f6_local27.states = f6_local28 f6_local27.properties = { text = f6_local20.name } f6_local25[f6_local26] = f6_local27 f6_local25[#f6_local25 + 1] = { type = "UIText", id = "report_detail_member_rank_text", states = { default = CoD.ColorizeState( Colors.primary_text_color, { leftAnchor = true, rightAnchor = false, topAnchor = true, bottomAnchor = false, left = f6_local6, right = f6_local6 + f6_local3.RankTextWidth, top = f6_local3.RankTextTop, bottom = f6_local3.RankTextTop + CoD.TextSettings.NormalFont.Height, font = CoD.TextSettings.NormalFont.Font, alignment = f6_local10 } ) }, properties = { text = Rank.GetRankDisplay( f6_local20.rank, CoD.PlayMode.SquadVsSquad ) } } f6_local26 = #f6_local25 + 1 f6_local27 = { type = "UIImage", id = "report_detail_member_rank_icon" } f6_local28 = {} f6_local29 = CoD.ColorizeState local f6_local31 = Colors.primary_text_color local f6_local32 = {} local f6_local33 = RegisterMaterial local f6_local34 = Rank.GetRankIcon( f6_local20.rank, f6_local20.prestige, CoD.PlayMode.SquadVsSquad ) if not f6_local34 then f6_local34 = "white" end f6_local32.material = f6_local33( f6_local34 ) f6_local32.leftAnchor = true f6_local32.rightAnchor = false f6_local32.topAnchor = true f6_local32.bottomAnchor = false f6_local32.left = f6_local7 f6_local32.right = f6_local7 + f6_local3.RankIconSize f6_local32.top = f6_local3.RankIconTop f6_local32.bottom = f6_local3.RankIconTop + f6_local3.RankIconSize f6_local28.default = f6_local29( f6_local31, f6_local32 ) f6_local27.states = f6_local28 f6_local25[f6_local26] = f6_local27 f6_local25[#f6_local25 + 1] = { type = "UIMarqueeText", id = "report_detail_member_weapon_name", states = { default = CoD.ColorizeState( Colors.primary_text_color, { leftAnchor = true, rightAnchor = false, topAnchor = true, bottomAnchor = false, left = f6_local8, right = f6_local9, top = f6_local3.LineTwoTop, bottom = f6_local3.LineTwoTop + CoD.TextSettings.NormalFont.Height, font = CoD.TextSettings.NormalFont.Font, alignment = f6_local10 } ) }, properties = { text = f6_local22 } } f6_local25[#f6_local25 + 1] = { type = "UIImage", id = "report_detail_member_weapon_icon", states = { default = CoD.ColorizeState( Colors.primary_text_color, { material = RegisterMaterial( f6_local23 ), leftAnchor = true, rightAnchor = false, topAnchor = false, bottomAnchor = false, left = f6_local11, right = f6_local11 + f6_local3.WeaponIconWidth, height = f6_local3.WeaponIconHeight } ) } } f6_local25[#f6_local25 + 1] = { type = "UIImage", id = "report_detail_member_bar", states = { default = CoD.ColorizeState( Colors.grey_4, { material = RegisterMaterial( "white" ), leftAnchor = true, rightAnchor = true, topAnchor = true, bottomAnchor = true, left = 0, right = 0, top = f6_local3.Height - f6_local3.BarHeight, bottom = 0, alpha = 0.5 } ) } } if f6_local24 then f6_local25[#f6_local25 + 1] = { type = "UIImage", id = "report_detail_member_mvp_bg", states = { default = CoD.ColorizeState( f6_local13, { material = RegisterMaterial( "box_squad_mvp" ), leftAnchor = true, rightAnchor = false, topAnchor = false, bottomAnchor = false, left = f6_local12, right = f6_local12 + f6_local3.MVPWidth, height = f6_local3.MVPHeight } ) }, children = { { type = "UIMarqueeText", id = "report_detail_mvp_text", properties = { text = Engine.Localize( "LUA_MENU_MVP_SHORT" ) }, states = { default = CoD.ColorizeState( Colors.black, { leftAnchor = true, rightAnchor = true, topAnchor = true, bottomAnchor = false, left = 0, right = 0, top = 4, height = CoD.TextSettings.BoldFont.Height, font = CoD.TextSettings.BoldFont.Font, alignment = LUI.Alignment.Center } ) } } } } end f6_local0[#f6_local0 + 1] = { type = "UIElement", id = "report_detail_member_" .. f6_local17, states = { default = { leftAnchor = true, rightAnchor = true, topAnchor = true, bottomAnchor = false, left = 0, right = 0, top = 0, bottom = f6_local3.Height } }, children = f6_local25 } end return f6_local0 end function TeamWindowContentFeeder( f7_arg0 ) if not f7_arg0 then f7_arg0 = {} end local f7_local0 = f7_arg0.reportData or {} local f7_local1 = f7_arg0.isEnemy or false local f7_local2 = f7_arg0.controller local f7_local3 = f7_local0.isCompare assert( f7_local2 ) if not f7_local2 then f7_local2 = Engine.GetFirstActiveController() DebugPrint( "[WARNING] Squad Report Detail: using controller index 0, this is only ok if you are editing a menu" ) end local f7_local4, f7_local5 = nil if f7_local1 then f7_local4 = f7_local0.enemyScore f7_local5 = f7_local0.enemyXPEarned else f7_local4 = f7_local0.yourScore f7_local5 = f7_local0.yourXPEarned end local f7_local6 = { [#f7_local6 + 1] = { type = "UIElement", id = "playercard_container", states = { default = { topAnchor = true, bottomAnchor = false, leftAnchor = true, rightAnchor = false, top = 0, left = -35, height = 100, width = 100 } }, children = { { type = "playercard", id = "report_detail_playercard", states = { default = { scale = -0.18 } } } } } } if f7_local3 then local f7_local7 = #f7_local6 + 1 local f7_local8 = { type = "UIElement", id = "report_detail_wins_container", states = { default = { topAnchor = true, bottomAnchor = false, leftAnchor = true, rightAnchor = true, top = 0, bottom = f0_local0.TeamWindow.InfoBar.Height, left = 0, right = 0 } } } local f7_local9 = { isEnemy = f7_local1 } local f7_local10 if f7_local1 then f7_local10 = f7_local0.enemyInfoBar if not f7_local10 then else f7_local9.infoBar = f7_local10 f7_local9.labelText = Engine.Localize( "LUA_MENU_WINS" ) f7_local10 = tostring local f7_local11 if f7_local1 then f7_local11 = f7_local0.enemyWins if not f7_local11 then else f7_local9.valueText = f7_local10( f7_local11 ) f7_local8.properties = f7_local9 f7_local8.childrenFeeder = InfoBarChildFeeder f7_local6[f7_local7] = f7_local8 f7_local7 = #f7_local6 + 1 f7_local8 = { type = "UIElement", id = "report_detail_losses_container", states = { default = { topAnchor = true, bottomAnchor = false, leftAnchor = true, rightAnchor = true, top = 0, bottom = f0_local0.TeamWindow.InfoBar.Height, left = 0, right = 0 } } } f7_local9 = { isEnemy = f7_local1 } if f7_local1 then f7_local10 = f7_local0.enemyInfoBar if not f7_local10 then else f7_local9.infoBar = f7_local10 f7_local9.labelText = Engine.Localize( "MENU_LOSSES" ) f7_local10 = tostring if f7_local1 then f7_local11 = f7_local0.enemyLosses if not f7_local11 then else f7_local9.valueText = f7_local10( f7_local11 ) f7_local8.properties = f7_local9 f7_local8.childrenFeeder = InfoBarChildFeeder f7_local6[f7_local7] = f7_local8 f7_local7 = #f7_local6 + 1 f7_local8 = { type = "UIElement", id = "report_detail_streak_container", states = { default = { topAnchor = true, bottomAnchor = false, leftAnchor = true, rightAnchor = true, top = 0, bottom = f0_local0.TeamWindow.InfoBar.Height, left = 0, right = 0 } } } f7_local9 = { isEnemy = f7_local1 } if f7_local1 then f7_local10 = f7_local0.enemyInfoBar if not f7_local10 then else f7_local9.infoBar = f7_local10 f7_local9.labelText = Engine.Localize( "LUA_MENU_CURRENT_STREAK" ) f7_local10 = tostring if f7_local1 then f7_local11 = f7_local0.enemyWinStreak if not f7_local11 then else f7_local9.valueText = f7_local10( f7_local11 ) f7_local8.properties = f7_local9 f7_local8.childrenFeeder = InfoBarChildFeeder f7_local6[f7_local7] = f7_local8 end end f7_local11 = f7_local0.yourWinStreak or 0 end end f7_local10 = f7_local0.yourInfoBar end end f7_local11 = f7_local0.yourLosses or 0 end end f7_local10 = f7_local0.yourInfoBar end end f7_local11 = f7_local0.yourWins or 0 end end f7_local10 = f7_local0.yourInfoBar end f7_local6[#f7_local6 + 1] = { type = "UIVerticalList", id = "report_detail_member_list", states = { default = { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = true, top = 0, bottom = 0, left = 0, right = 0 } }, properties = { isEnemy = f7_local1, reportData = f7_local0 }, childrenFeeder = MemberListFeeder } return f7_local6 end function TeamWindowChildFeeder( f8_arg0 ) local f8_local0 = {} local f8_local1 = f8_arg0.isEnemy or false local f8_local2 = nil if f8_local1 then f8_local2 = f8_arg0.reportData.enemySquadName else f8_local2 = Squad.GetPlayerSquadName( f8_arg0.controller ) end f8_local0[#f8_local0 + 1] = { type = "generic_drop_shadow", id = "report_detail_main_dropshadow", properties = { offset_shadow = -5 } } f8_local0[#f8_local0 + 1] = { type = "generic_menu_background", id = "report_detail_main_titlebar", properties = { hide_bottom = true, fill_alpha = 1 }, states = { default = { topAnchor = true, bottomAnchor = false, leftAnchor = true, rightAnchor = true, top = 0, left = 0, right = 0, height = GenericTitleBarDims.TitleBarHeight } }, children = { { type = "UIText", id = "report_detail_title_text", states = { default = CoD.ColorizeState( Colors.window_title_text_color, { topAnchor = false, bottomAnchor = false, leftAnchor = true, rightAnchor = true, left = 0, right = 0, height = CoD.TextSettings.ExtraBigFont.Height, font = CoD.TextSettings.ExtraBigFont.Font, alignment = LUI.Alignment.Center } ) }, properties = { text = Engine.Localize( "LUA_MENU_SQUAD_LABEL", Engine.MarkLocalized( f8_local2 ) ) } } } } f8_local0[#f8_local0 + 1] = { type = "generic_menu_background", id = "report_detail_main_background", properties = { fill_alpha = 1, top_offset = Cac.Layout.InfoPane.header_height - 1 } } f8_local0[#f8_local0 + 1] = { type = "UIVerticalList", id = "report_detail_main_vlist", states = { default = { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = true, top = GenericTitleBarDims.TitleBarHeight, bottom = 0, left = 5, right = -5, spacing = 5 } }, childrenFeeder = TeamWindowContentFeeder, properties = { reportData = f8_arg0.reportData, controller = f8_arg0.controller, isEnemy = f8_local1 } } return f8_local0 end function squad_report_detail_team_window() return { type = "UIElement", id = "squad_report_detail_team_window", states = { default = { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = true, top = 0, bottom = 0, left = 0, right = 0 } }, properties = { reportData = MBh.Property( "reportData" ), controller = MBh.Property( "controller" ) }, handlers = {}, childrenFeeder = TeamWindowChildFeeder } end function squad_report_detail_stat_compare( f10_arg0, f10_arg1 ) if not f10_arg1 then f10_arg1 = {} end local f10_local0 = f10_arg1.value or 0 local f10_local1 = tostring( f10_local0 ) local f10_local2 = f0_local0.CompareStats.BGColors.Same local f10_local3 = f0_local0.CompareStats.TextColors.Same local f10_local4 = nil if f10_local0 > 0 then f10_local2 = f0_local0.CompareStats.BGColors.Better f10_local3 = f0_local0.CompareStats.TextColors.Better f10_local4 = RegisterMaterial( "widg_arrow_up" ) f10_local1 = string.format( "%+d", f10_local0 ) elseif f10_local0 < 0 then f10_local2 = f0_local0.CompareStats.BGColors.Worse f10_local3 = f0_local0.CompareStats.TextColors.Worse f10_local4 = RegisterMaterial( "widg_arrow_dn" ) f10_local1 = string.format( "%+d", f10_local0 ) end local self = LUI.UIElement.new() self.id = "squad_report_detail_stat_compare_container" self:registerAnimationState( "default", { topAnchor = true, bottomAnchor = true, leftAnchor = true, rightAnchor = true, top = 0, bottom = 0, left = 0, right = 0 } ) self:animateToState( "default", 0 ) local f10_local6 = LUI.UIImage.new() f10_local6.id = "stat_compare_bg_left" f10_local6:registerAnimationState( "default", CoD.ColorizeState( f10_local2, { material = RegisterMaterial( "box_white_gradient_fade_rt" ), leftAnchor = true, rightAnchor = false, topAnchor = true, bottomAnchor = true, left = 0, right = f0_local0.CompareStats.BGWidth, top = 0, bottom = 0, alpha = 0.12 } ) ) f10_local6:animateToState( "default", 0 ) self:addElement( f10_local6 ) local f10_local7 = LUI.UIImage.new() f10_local7.id = "stat_compare_bg_right" f10_local7:registerAnimationState( "default", CoD.ColorizeState( f10_local2, { material = RegisterMaterial( "box_white_gradient_fade" ), leftAnchor = true, rightAnchor = true, topAnchor = true, bottomAnchor = true, left = f0_local0.CompareStats.BGWidth, right = 0, top = 0, bottom = 0, alpha = 0.12 } ) ) f10_local7:animateToState( "default", 0 ) self:addElement( f10_local7 ) local f10_local8 = LUI.UIText.new() f10_local8.id = "stat_compare_value_text" f10_local8:registerAnimationState( "default", CoD.ColorizeState( f10_local3, { leftAnchor = true, rightAnchor = true, topAnchor = true, bottomAnchor = false, left = 0, right = 0, top = 5, bottom = CoD.TextSettings.SmallFont.Height + 5, font = CoD.TextSettings.SmallFont.Font, alignment = LUI.Alignment.Center } ) ) f10_local8:animateToState( "default", 0 ) f10_local8:setText( f10_local1 ) self:addElement( f10_local8 ) if f10_local4 then local f10_local9 = LUI.UIImage.new() f10_local9.id = "stat_compare_arrow" f10_local9:registerAnimationState( "default", CoD.ColorizeState( f10_local2, { material = f10_local4, leftAnchor = true, rightAnchor = false, topAnchor = true, bottomAnchor = false, left = f0_local0.CompareStats.BGWidth - f0_local0.CompareStats.ArrowSize * 0.5, right = f0_local0.CompareStats.BGWidth + f0_local0.CompareStats.ArrowSize, top = 1, bottom = 1 + f0_local0.CompareStats.ArrowSize, alpha = 1 } ) ) f10_local9:animateToState( "default", 0 ) self:addElement( f10_local9 ) end return self end LUI.MenuBuilder.registerDef( "squad_report_detail_menu", squad_report_detail_menu ) LUI.MenuBuilder.registerDef( "squad_report_detail_team_window", squad_report_detail_team_window ) LUI.MenuBuilder.registerType( "squad_report_detail_stat_compare", squad_report_detail_stat_compare ) LockTable( _M )