1721 lines
		
	
	
		
			41 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			1721 lines
		
	
	
		
			41 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
local f0_local0 = module
 | 
						|
local f0_local1, f0_local2 = ...
 | 
						|
f0_local0( f0_local1, package.seeall )
 | 
						|
CoD.PrintModuleLoad( _NAME )
 | 
						|
function chaos_main_score()
 | 
						|
	local f1_local0 = 220
 | 
						|
	local f1_local1 = 64
 | 
						|
	local f1_local2 = 16
 | 
						|
	local f1_local3 = 16
 | 
						|
	local f1_local4 = 1.5
 | 
						|
	local self = LUI.UIElement.new( {
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = false,
 | 
						|
		leftAnchor = false,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = 0,
 | 
						|
		height = f1_local1,
 | 
						|
		width = f1_local0,
 | 
						|
		right = 4
 | 
						|
	} )
 | 
						|
	self.id = "chaos_main_score"
 | 
						|
	local f1_local6 = LUI.UIHorizontalList.new( {
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = 0,
 | 
						|
		bottom = 0,
 | 
						|
		left = 0,
 | 
						|
		right = 0
 | 
						|
	} )
 | 
						|
	f1_local6.id = "background"
 | 
						|
	self:addElement( f1_local6 )
 | 
						|
	local f1_local7 = LUI.UIImage.new( {
 | 
						|
		material = RegisterMaterial( "hud_box_combo_score_ltcap" ),
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = false,
 | 
						|
		top = 0,
 | 
						|
		bottom = 0,
 | 
						|
		left = 0,
 | 
						|
		right = f1_local2
 | 
						|
	} )
 | 
						|
	f1_local7.id = "bgLeft"
 | 
						|
	f1_local6:addElement( f1_local7 )
 | 
						|
	local f1_local8 = LUI.UIImage.new( {
 | 
						|
		material = RegisterMaterial( "hud_box_combo_score_mid" ),
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = false,
 | 
						|
		top = 0,
 | 
						|
		bottom = 0,
 | 
						|
		left = 0,
 | 
						|
		right = f1_local0 - f1_local2 - f1_local3
 | 
						|
	} )
 | 
						|
	f1_local8.id = "bgMid"
 | 
						|
	f1_local6:addElement( f1_local8 )
 | 
						|
	local f1_local9 = LUI.UIImage.new( {
 | 
						|
		material = RegisterMaterial( "hud_box_combo_score_rtcap" ),
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = false,
 | 
						|
		top = 0,
 | 
						|
		bottom = 0,
 | 
						|
		left = 0,
 | 
						|
		right = f1_local3
 | 
						|
	} )
 | 
						|
	f1_local9.id = "bgRight"
 | 
						|
	f1_local6:addElement( f1_local9 )
 | 
						|
	local f1_local10 = LUI.UIText.new( CoD.ColorizeState( Colors.primary_text_color, {
 | 
						|
		font = CoD.TextSettings.SmallFont.Font,
 | 
						|
		alignment = LUI.Alignment.Center,
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = false,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		left = 0,
 | 
						|
		top = 6,
 | 
						|
		right = 0,
 | 
						|
		height = CoD.TextSettings.SmallFont.Height
 | 
						|
	} ) )
 | 
						|
	f1_local10.id = "title"
 | 
						|
	f1_local10:setText( Engine.Localize( "ALIEN_CHAOS_SCORE" ) )
 | 
						|
	self:addElement( f1_local10 )
 | 
						|
	local f1_local11 = Game.GetOmnvar( "ui_alien_chaos_total_score" )
 | 
						|
	local f1_local12 = LUI.UIPrettyNumber.new( CoD.ColorizeState( Colors.alien_chaos_hilite, {
 | 
						|
		font = CoD.TextSettings.ExtraBigFont.Font,
 | 
						|
		alignment = LUI.Alignment.Center,
 | 
						|
		topAnchor = false,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		left = 0,
 | 
						|
		bottom = -8,
 | 
						|
		right = 0,
 | 
						|
		height = CoD.TextSettings.ExtraBigFont.Height
 | 
						|
	} ), {
 | 
						|
		speed = 1000,
 | 
						|
		initialValue = f1_local11,
 | 
						|
		precision = 5
 | 
						|
	} )
 | 
						|
	f1_local12.id = "score"
 | 
						|
	f1_local12:setTextStyle( CoD.TextStyle.Outlined )
 | 
						|
	self:addElement( f1_local12 )
 | 
						|
	local f1_local13 = function ( f2_arg0, f2_arg1 )
 | 
						|
		assert( f1_local4 > 0 )
 | 
						|
		local f2_local0 = 0
 | 
						|
		if f2_arg0.getDisplayValue then
 | 
						|
			f2_local0 = f2_arg0:getDisplayValue()
 | 
						|
		end
 | 
						|
		f2_arg0:setSpeed( (f2_arg1.value - f2_local0) / f1_local4 )
 | 
						|
		f2_arg0:setValue( f2_arg1.value )
 | 
						|
	end
 | 
						|
	
 | 
						|
	f1_local12:registerOmnvarHandler( "ui_alien_chaos_total_score", f1_local13 )
 | 
						|
	f1_local13( f1_local12, {
 | 
						|
		value = f1_local11
 | 
						|
	} )
 | 
						|
	return self
 | 
						|
end
 | 
						|
 | 
						|
f0_local0 = 300
 | 
						|
function chaos_combo_gauge()
 | 
						|
	local f3_local0 = 256
 | 
						|
	local f3_local1 = 40
 | 
						|
	local f3_local2 = 18
 | 
						|
	local f3_local3 = 12
 | 
						|
	local f3_local4 = 32
 | 
						|
	local f3_local5 = 130
 | 
						|
	local f3_local6 = 12
 | 
						|
	local f3_local7 = -2
 | 
						|
	local self = LUI.UIElement.new( {
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = false,
 | 
						|
		leftAnchor = false,
 | 
						|
		rightAnchor = false,
 | 
						|
		top = 0,
 | 
						|
		height = f3_local1,
 | 
						|
		left = -f3_local0 / 2,
 | 
						|
		right = f3_local0 / 2
 | 
						|
	} )
 | 
						|
	self.id = "chaos_combo_gauge"
 | 
						|
	local f3_local9 = LUI.UIImage.new( {
 | 
						|
		material = RegisterMaterial( "hud_combo_meter_bg" ),
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = 0,
 | 
						|
		bottom = 0,
 | 
						|
		left = 0,
 | 
						|
		right = 0
 | 
						|
	} )
 | 
						|
	f3_local9.id = "background"
 | 
						|
	self:addElement( f3_local9 )
 | 
						|
	local f3_local10 = LUI.UIHorizontalList.new( {
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = false,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = 3,
 | 
						|
		height = f3_local4,
 | 
						|
		left = 0,
 | 
						|
		right = 0,
 | 
						|
		alignment = LUI.Alignment.Center
 | 
						|
	} )
 | 
						|
	f3_local10.id = "ticks"
 | 
						|
	self:addElement( f3_local10 )
 | 
						|
	for f3_local11 = 1, f3_local2, 1 do
 | 
						|
		local f3_local14 = f3_local11
 | 
						|
		local f3_local15 = LUI.UIElement.new( {
 | 
						|
			topAnchor = true,
 | 
						|
			bottomAnchor = true,
 | 
						|
			leftAnchor = true,
 | 
						|
			rightAnchor = false,
 | 
						|
			top = 0,
 | 
						|
			bottom = 0,
 | 
						|
			left = 0,
 | 
						|
			right = f3_local3
 | 
						|
		} )
 | 
						|
		f3_local15.id = "tick_" .. f3_local14
 | 
						|
		f3_local10:addElement( f3_local15 )
 | 
						|
		local f3_local16 = LUI.UIImage.new( {
 | 
						|
			material = RegisterMaterial( "hud_combo_meter_tic_empty" ),
 | 
						|
			topAnchor = true,
 | 
						|
			bottomAnchor = true,
 | 
						|
			leftAnchor = true,
 | 
						|
			rightAnchor = true,
 | 
						|
			top = 0,
 | 
						|
			bottom = 0,
 | 
						|
			left = 0,
 | 
						|
			right = 0,
 | 
						|
			alpha = 0.75
 | 
						|
		} )
 | 
						|
		f3_local16.id = "tickBorder"
 | 
						|
		f3_local15:addElement( f3_local16 )
 | 
						|
		local f3_local17 = LUI.UIImage.new( {
 | 
						|
			material = RegisterMaterial( "hud_combo_meter_tic_fill" ),
 | 
						|
			topAnchor = true,
 | 
						|
			bottomAnchor = true,
 | 
						|
			leftAnchor = true,
 | 
						|
			rightAnchor = true,
 | 
						|
			top = 1,
 | 
						|
			bottom = 1,
 | 
						|
			left = 0,
 | 
						|
			right = 0,
 | 
						|
			alpha = 0
 | 
						|
		} )
 | 
						|
		f3_local17:registerAnimationState( "frozen", CoD.ColorizeState( Colors.alien_chaos_freeze, {
 | 
						|
			alpha = 1
 | 
						|
		} ) )
 | 
						|
		local f3_local18 = {
 | 
						|
			r = 0.38,
 | 
						|
			g = 0.65,
 | 
						|
			b = 0.31
 | 
						|
		}
 | 
						|
		local f3_local19 = {
 | 
						|
			r = 0.9,
 | 
						|
			g = 0.78,
 | 
						|
			b = 0.1
 | 
						|
		}
 | 
						|
		local f3_local20 = {
 | 
						|
			r = 1,
 | 
						|
			g = 0.24,
 | 
						|
			b = 0.04
 | 
						|
		}
 | 
						|
		local f3_local21 = {
 | 
						|
			{
 | 
						|
				threshold = 0,
 | 
						|
				color = f3_local20
 | 
						|
			},
 | 
						|
			{
 | 
						|
				threshold = 0.19,
 | 
						|
				color = f3_local20
 | 
						|
			},
 | 
						|
			{
 | 
						|
				threshold = 0.31,
 | 
						|
				color = f3_local19
 | 
						|
			},
 | 
						|
			{
 | 
						|
				threshold = 0.53,
 | 
						|
				color = f3_local19
 | 
						|
			},
 | 
						|
			{
 | 
						|
				threshold = 0.64,
 | 
						|
				color = f3_local18
 | 
						|
			},
 | 
						|
			{
 | 
						|
				threshold = 1,
 | 
						|
				color = f3_local18
 | 
						|
			}
 | 
						|
		}
 | 
						|
		f3_local17.id = "tickFill"
 | 
						|
		f3_local15:addElement( f3_local17 )
 | 
						|
		local f3_local22 = LUI.UIImage.new( {
 | 
						|
			material = RegisterMaterial( "white" ),
 | 
						|
			topAnchor = true,
 | 
						|
			bottomAnchor = false,
 | 
						|
			leftAnchor = true,
 | 
						|
			rightAnchor = true,
 | 
						|
			top = 14,
 | 
						|
			height = 4,
 | 
						|
			left = 1,
 | 
						|
			right = -1,
 | 
						|
			alpha = 0
 | 
						|
		} )
 | 
						|
		f3_local22:registerAnimationState( "visible", {
 | 
						|
			alpha = 1
 | 
						|
		} )
 | 
						|
		f3_local22.id = "tickFlash"
 | 
						|
		f3_local15:addElement( f3_local22 )
 | 
						|
		f3_local15.fill = f3_local17
 | 
						|
		f3_local15.flash = f3_local22
 | 
						|
		f3_local15.ticksLit = 0
 | 
						|
		f3_local15:registerEventHandler( "refresh_ticks", function ( element, event )
 | 
						|
			local f4_local0 = f3_local14 <= event.ticksLit
 | 
						|
			if f4_local0 or event.frozen then
 | 
						|
				if event.frozen then
 | 
						|
					if not element.frozen then
 | 
						|
						element.fill:animateToState( "frozen", 350 )
 | 
						|
					end
 | 
						|
				elseif element.ticksLit ~= event.ticksLit then
 | 
						|
					if not element.lit then
 | 
						|
						local f4_local1 = MBh.AnimateSequence( {
 | 
						|
							{
 | 
						|
								"default",
 | 
						|
								0
 | 
						|
							},
 | 
						|
							{
 | 
						|
								"default",
 | 
						|
								20 * math.max( 0, f3_local14 - element.ticksLit )
 | 
						|
							},
 | 
						|
							{
 | 
						|
								"visible",
 | 
						|
								0
 | 
						|
							},
 | 
						|
							{
 | 
						|
								"default",
 | 
						|
								200
 | 
						|
							}
 | 
						|
						} )
 | 
						|
						f4_local1( element.flash, {} )
 | 
						|
					end
 | 
						|
					element.fill:registerAnimationState( "current", CoD.ColorizeState( CoD.GradientMap( f3_local21, event.ticksLit / f3_local2 ) ) )
 | 
						|
					element.fill:animateToState( "current" )
 | 
						|
				end
 | 
						|
			elseif element.lit then
 | 
						|
				element.fill:animateToState( "default", 100 )
 | 
						|
			end
 | 
						|
			element.frozen = event.frozen
 | 
						|
			element.ticksLit = event.ticksLit
 | 
						|
			element.lit = f4_local0
 | 
						|
		end )
 | 
						|
	end
 | 
						|
	local f3_local11 = LUI.UIElement.new( {
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = 0,
 | 
						|
		bottom = 0,
 | 
						|
		left = 0,
 | 
						|
		right = 0
 | 
						|
	} )
 | 
						|
	f3_local11.id = "frozen"
 | 
						|
	self:addElement( f3_local11 )
 | 
						|
	for f3_local12 = 1, f3_local5, 1 do
 | 
						|
		local f3_local15 = f3_local12
 | 
						|
		local f3_local16 = LUI.UIImage.new( {
 | 
						|
			material = RegisterMaterial( "alien_chaos_freeze_snowflake" ),
 | 
						|
			topAnchor = false,
 | 
						|
			bottomAnchor = false,
 | 
						|
			leftAnchor = true,
 | 
						|
			rightAnchor = false,
 | 
						|
			top = f3_local7 - math.random() * 10,
 | 
						|
			height = f3_local6,
 | 
						|
			left = 20 - f3_local6 / 2 + f3_local15 * (f3_local0 - 40) / f3_local5,
 | 
						|
			width = f3_local6,
 | 
						|
			scale = -1,
 | 
						|
			alpha = 0
 | 
						|
		} )
 | 
						|
		f3_local16:registerAnimationState( "visible", {
 | 
						|
			alpha = 1,
 | 
						|
			scale = 0.75 - 1.5 * math.random(),
 | 
						|
			zRot = 360 * math.random()
 | 
						|
		} )
 | 
						|
		f3_local16.id = "iceCube_" .. f3_local15
 | 
						|
		f3_local11:addElement( f3_local16 )
 | 
						|
		f3_local16:registerEventHandler( "refresh_ice_cubes", function ( element, event )
 | 
						|
			if f3_local15 <= event.cubesLit then
 | 
						|
				if not element.visible then
 | 
						|
					local f5_local0 = MBh.AnimateSequence( {
 | 
						|
						{
 | 
						|
							"default",
 | 
						|
							0
 | 
						|
						},
 | 
						|
						{
 | 
						|
							"default",
 | 
						|
							f0_local0 * f3_local15 / f3_local5
 | 
						|
						},
 | 
						|
						{
 | 
						|
							"visible",
 | 
						|
							200
 | 
						|
						}
 | 
						|
					} )
 | 
						|
					f5_local0( element, {} )
 | 
						|
					element.visible = true
 | 
						|
				end
 | 
						|
			elseif element.visible then
 | 
						|
				element:cancelAnimateToState()
 | 
						|
				element:animateToState( "default", 100 )
 | 
						|
				element.visible = nil
 | 
						|
			end
 | 
						|
		end )
 | 
						|
	end
 | 
						|
	local f3_local12 = LUI.UIElement.new( {
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = 8,
 | 
						|
		bottom = 8,
 | 
						|
		left = 0,
 | 
						|
		right = 0,
 | 
						|
		alpha = 0
 | 
						|
	} )
 | 
						|
	f3_local12:registerAnimationState( "visible", {
 | 
						|
		alpha = 1
 | 
						|
	} )
 | 
						|
	f3_local12.id = "icicles"
 | 
						|
	f3_local11:addElement( f3_local12 )
 | 
						|
	f3_local12:registerOmnvarHandler( "ui_alien_chaos_meter_freeze_end", function ( f6_arg0, f6_arg1 )
 | 
						|
		if f6_arg1.value > 0 then
 | 
						|
			f6_arg0:animateToState( "visible", f0_local0 )
 | 
						|
		else
 | 
						|
			f6_arg0:animateToState( "default", 400 )
 | 
						|
		end
 | 
						|
	end )
 | 
						|
	f3_local12:addElement( LUI.UIImage.new( {
 | 
						|
		material = RegisterMaterial( "alien_chaos_freeze_icicles" ),
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = 0,
 | 
						|
		bottom = 0,
 | 
						|
		left = 0,
 | 
						|
		right = 0
 | 
						|
	} ) )
 | 
						|
	f3_local12:addElement( LUI.UIImage.new( {
 | 
						|
		material = RegisterMaterial( "alien_chaos_freeze_icicles" ),
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = 0,
 | 
						|
		bottom = 0,
 | 
						|
		left = 0,
 | 
						|
		right = 0,
 | 
						|
		alpha = 0.2
 | 
						|
	} ) )
 | 
						|
	local f3_local15 = Game.GetOmnvar( "ui_alien_chaos_combo_meter_start" )
 | 
						|
	self:registerOmnvarHandler( "ui_alien_chaos_combo_meter_end", function ( f7_arg0, f7_arg1 )
 | 
						|
		f3_local15 = Game.GetTime()
 | 
						|
	end )
 | 
						|
	local f3_local16 = LUI.UITimer.new( 50, "combo_gauge_refresh" )
 | 
						|
	f3_local16.id = "refreshTimer"
 | 
						|
	self:addElement( f3_local16 )
 | 
						|
	self:registerEventHandler( "combo_gauge_refresh", function ( element, event )
 | 
						|
		local f8_local0 = Game.GetTime()
 | 
						|
		local f8_local1 = Game.GetOmnvar( "ui_alien_chaos_meter_freeze_start" )
 | 
						|
		local f8_local2 = Game.GetOmnvar( "ui_alien_chaos_meter_freeze_end" )
 | 
						|
		local f8_local3
 | 
						|
		if f8_local1 > f8_local0 or f8_local0 >= f8_local2 then
 | 
						|
			f8_local3 = false
 | 
						|
		else
 | 
						|
			f8_local3 = true
 | 
						|
		end
 | 
						|
		local f8_local4 = Game.GetOmnvar( "ui_alien_chaos_combo_meter_end" )
 | 
						|
		local f8_local5 = (f8_local4 - f8_local0) / (f8_local4 - f3_local15)
 | 
						|
		if f8_local3 then
 | 
						|
			f8_local5 = (f8_local0 - f8_local1) / f0_local0
 | 
						|
		end
 | 
						|
		f3_local10:processEvent( {
 | 
						|
			name = "refresh_ticks",
 | 
						|
			ticksLit = math.ceil( LUI.clamp( f8_local5, 0, 1 ) * f3_local2 ),
 | 
						|
			frozen = f8_local3,
 | 
						|
			duration = f8_local4 - f3_local15
 | 
						|
		} )
 | 
						|
		local f8_local6 = LUI.clamp( (f8_local2 - f8_local0) / (f8_local2 - f8_local1), 0, 1 )
 | 
						|
		if not f8_local3 then
 | 
						|
			f8_local6 = 0
 | 
						|
		end
 | 
						|
		f3_local11:processEvent( {
 | 
						|
			name = "refresh_ice_cubes",
 | 
						|
			cubesLit = math.ceil( f8_local6 * f3_local5 )
 | 
						|
		} )
 | 
						|
	end )
 | 
						|
	return self
 | 
						|
end
 | 
						|
 | 
						|
function chaos_combo_score()
 | 
						|
	local f9_local0 = 200
 | 
						|
	local f9_local1 = 15
 | 
						|
	local f9_local2 = 36
 | 
						|
	local f9_local3 = 1.5
 | 
						|
	local self = LUI.UIHorizontalList.new( {
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = false,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = 24,
 | 
						|
		height = f9_local2,
 | 
						|
		left = 0,
 | 
						|
		right = 0,
 | 
						|
		alignment = LUI.Alignment.Center
 | 
						|
	} )
 | 
						|
	self.id = "chaos_combo_score"
 | 
						|
	local f9_local5 = LUI.UIText.new( CoD.ColorizeState( Colors.alien_tech_tree_bright_grey, {
 | 
						|
		font = CoD.TextSettings.ExtraBigFont.Font,
 | 
						|
		alignment = LUI.Alignment.Right,
 | 
						|
		topAnchor = false,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = false,
 | 
						|
		left = 0,
 | 
						|
		bottom = 3,
 | 
						|
		width = f9_local0,
 | 
						|
		height = f9_local2,
 | 
						|
		scale = 0
 | 
						|
	} ) )
 | 
						|
	f9_local5:registerAnimationState( "pulse", CoD.ColorizeState( Colors.white, {
 | 
						|
		scale = 0.1
 | 
						|
	} ) )
 | 
						|
	f9_local5:registerAnimationState( "frozen", CoD.ColorizeState( Colors.alien_chaos_freeze, {
 | 
						|
		scale = 0
 | 
						|
	} ) )
 | 
						|
	f9_local5:setTextStyle( CoD.TextStyle.OutlinedMore )
 | 
						|
	f9_local5.id = "comboMultiplier"
 | 
						|
	self:addElement( f9_local5 )
 | 
						|
	local f9_local6 = 0
 | 
						|
	local f9_local7 = function ( f10_arg0, f10_arg1 )
 | 
						|
		local f10_local0 = MBh.AnimateSequence( {
 | 
						|
			{
 | 
						|
				"pulse",
 | 
						|
				50
 | 
						|
			},
 | 
						|
			{
 | 
						|
				f10_arg0.frozen and "frozen" or "default",
 | 
						|
				200
 | 
						|
			}
 | 
						|
		} )
 | 
						|
		f10_arg0:setText( f10_arg1.value .. "x" )
 | 
						|
		if f10_arg1.value > 0 then
 | 
						|
			f10_local0( f10_arg0, {} )
 | 
						|
		end
 | 
						|
	end
 | 
						|
	
 | 
						|
	f9_local5:registerOmnvarHandler( "ui_alien_chaos_combo_counter", f9_local7 )
 | 
						|
	f9_local5:registerOmnvarHandler( "ui_alien_chaos_meter_freeze_start", function ( f11_arg0, f11_arg1 )
 | 
						|
		if f11_arg1.value > 0 then
 | 
						|
			f11_arg0:animateToState( "frozen", f0_local0 )
 | 
						|
			f11_arg0.frozen = true
 | 
						|
		else
 | 
						|
			f11_arg0:animateToState( "default", 100 )
 | 
						|
			f11_arg0.frozen = false
 | 
						|
		end
 | 
						|
	end )
 | 
						|
	f9_local7( f9_local5, {
 | 
						|
		value = Game.GetOmnvar( "ui_alien_chaos_combo_counter" )
 | 
						|
	} )
 | 
						|
	local f9_local8 = LUI.UIElement.new( {
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = false,
 | 
						|
		top = 0,
 | 
						|
		bottom = 0,
 | 
						|
		left = 0,
 | 
						|
		width = f9_local1
 | 
						|
	} )
 | 
						|
	f9_local8.id = "padding"
 | 
						|
	self:addElement( f9_local8 )
 | 
						|
	local f9_local9 = LUI.UIPrettyNumber.new( CoD.ColorizeState( Colors.alien_chaos_hilite, {
 | 
						|
		font = CoD.TextSettings.HudIW6NormalFont.Font,
 | 
						|
		alignment = LUI.Alignment.Left,
 | 
						|
		topAnchor = false,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = false,
 | 
						|
		left = 0,
 | 
						|
		bottom = 0,
 | 
						|
		width = f9_local0,
 | 
						|
		height = CoD.TextSettings.HudIW6NormalFont.Height
 | 
						|
	} ), {
 | 
						|
		speed = 150,
 | 
						|
		initialValue = Game.GetOmnvar( "ui_alien_chaos_score_streak" )
 | 
						|
	} )
 | 
						|
	f9_local9:registerAnimationState( "frozen", CoD.ColorizeState( Colors.alien_chaos_freeze ) )
 | 
						|
	f9_local9:setTextStyle( CoD.TextStyle.OutlinedMore )
 | 
						|
	f9_local9.id = "comboPoints"
 | 
						|
	self:addElement( f9_local9 )
 | 
						|
	local f9_local10 = function ( f12_arg0, f12_arg1 )
 | 
						|
		assert( f9_local3 > 0 )
 | 
						|
		local f12_local0 = 0
 | 
						|
		if f12_arg0.getDisplayValue then
 | 
						|
			f12_local0 = f12_arg0:getDisplayValue()
 | 
						|
		end
 | 
						|
		f12_arg0:setSpeed( (f12_arg1.value - f12_local0) / f9_local3 )
 | 
						|
		f12_arg0:setValue( f12_arg1.value )
 | 
						|
	end
 | 
						|
	
 | 
						|
	f9_local9:registerOmnvarHandler( "ui_alien_chaos_score_streak", f9_local10 )
 | 
						|
	f9_local9:registerOmnvarHandler( "ui_alien_chaos_meter_freeze_start", function ( f13_arg0, f13_arg1 )
 | 
						|
		if f13_arg1.value > 0 then
 | 
						|
			f13_arg0:animateToState( "frozen", f0_local0 )
 | 
						|
		else
 | 
						|
			f13_arg0:animateToState( "default", 100 )
 | 
						|
		end
 | 
						|
	end )
 | 
						|
	f9_local10( f9_local9, {
 | 
						|
		value = Game.GetOmnvar( "ui_alien_chaos_score_streak" )
 | 
						|
	} )
 | 
						|
	return self
 | 
						|
end
 | 
						|
 | 
						|
function chaos_combo_meter()
 | 
						|
	local self = nil
 | 
						|
	if Engine.UsingSplitscreenUpscaling() then
 | 
						|
		self = LUI.UIElement.new( {
 | 
						|
			topAnchor = false,
 | 
						|
			bottomAnchor = true,
 | 
						|
			leftAnchor = true,
 | 
						|
			rightAnchor = true,
 | 
						|
			bottom = -60,
 | 
						|
			height = 0,
 | 
						|
			left = 0,
 | 
						|
			right = 0
 | 
						|
		} )
 | 
						|
	else
 | 
						|
		self = LUI.UIElement.new( {
 | 
						|
			topAnchor = false,
 | 
						|
			bottomAnchor = false,
 | 
						|
			leftAnchor = true,
 | 
						|
			rightAnchor = true,
 | 
						|
			top = 50,
 | 
						|
			height = 0,
 | 
						|
			left = 0,
 | 
						|
			right = 0
 | 
						|
		} )
 | 
						|
	end
 | 
						|
	self.id = "chaos_combo_meter"
 | 
						|
	self:addElement( chaos_combo_gauge() )
 | 
						|
	self:addElement( chaos_combo_score() )
 | 
						|
	return self
 | 
						|
end
 | 
						|
 | 
						|
function chaos_clock()
 | 
						|
	local f15_local0 = 256
 | 
						|
	local f15_local1 = 64
 | 
						|
	local f15_local2 = Game.GetOmnvar( "ui_alien_chaos_grace_period" )
 | 
						|
	local f15_local3 = {
 | 
						|
		{
 | 
						|
			time = 30000,
 | 
						|
			alias = "ui_mp_suitcasebomb_timer"
 | 
						|
		},
 | 
						|
		{
 | 
						|
			time = 20000,
 | 
						|
			alias = "ui_mp_suitcasebomb_timer"
 | 
						|
		},
 | 
						|
		{
 | 
						|
			time = 10000,
 | 
						|
			alias = "ui_mp_timer_countdown"
 | 
						|
		},
 | 
						|
		{
 | 
						|
			time = 9000,
 | 
						|
			alias = "ui_mp_timer_countdown"
 | 
						|
		},
 | 
						|
		{
 | 
						|
			time = 8000,
 | 
						|
			alias = "ui_mp_timer_countdown"
 | 
						|
		},
 | 
						|
		{
 | 
						|
			time = 7000,
 | 
						|
			alias = "ui_mp_timer_countdown"
 | 
						|
		},
 | 
						|
		{
 | 
						|
			time = 6000,
 | 
						|
			alias = "ui_mp_timer_countdown"
 | 
						|
		},
 | 
						|
		{
 | 
						|
			time = 5000,
 | 
						|
			alias = "ui_mp_timer_countdown"
 | 
						|
		},
 | 
						|
		{
 | 
						|
			time = 4000,
 | 
						|
			alias = "ui_mp_timer_countdown"
 | 
						|
		},
 | 
						|
		{
 | 
						|
			time = 3000,
 | 
						|
			alias = "ui_mp_timer_countdown"
 | 
						|
		},
 | 
						|
		{
 | 
						|
			time = 2000,
 | 
						|
			alias = "ui_mp_timer_countdown"
 | 
						|
		},
 | 
						|
		{
 | 
						|
			time = 1000,
 | 
						|
			alias = "ui_mp_timer_countdown"
 | 
						|
		}
 | 
						|
	}
 | 
						|
	local self = LUI.UIElement.new( {
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = 0,
 | 
						|
		bottom = 0,
 | 
						|
		left = 0,
 | 
						|
		right = 0
 | 
						|
	} )
 | 
						|
	self.id = "chaos_clock"
 | 
						|
	local f15_local5 = LUI.UIElement.new( {
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = false,
 | 
						|
		leftAnchor = false,
 | 
						|
		rightAnchor = false,
 | 
						|
		bottom = 0,
 | 
						|
		height = f15_local1,
 | 
						|
		left = -f15_local0 / 2,
 | 
						|
		right = f15_local0 / 2,
 | 
						|
		alpha = 0
 | 
						|
	} )
 | 
						|
	f15_local5:registerAnimationState( "visible", {
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = false,
 | 
						|
		leftAnchor = false,
 | 
						|
		rightAnchor = false,
 | 
						|
		top = 0,
 | 
						|
		height = f15_local1,
 | 
						|
		left = -f15_local0 / 2,
 | 
						|
		right = f15_local0 / 2,
 | 
						|
		alpha = 1
 | 
						|
	} )
 | 
						|
	f15_local5:registerAnimationState( "animating", {
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = false,
 | 
						|
		leftAnchor = false,
 | 
						|
		rightAnchor = false,
 | 
						|
		top = 20,
 | 
						|
		height = f15_local1,
 | 
						|
		left = -f15_local0 / 2,
 | 
						|
		right = f15_local0 / 2,
 | 
						|
		alpha = 1
 | 
						|
	} )
 | 
						|
	f15_local5.id = "chaos_clock"
 | 
						|
	local f15_local6 = function ( f16_arg0, f16_arg1 )
 | 
						|
		local f16_local0 = nil
 | 
						|
		if 0 < f16_arg1 then
 | 
						|
			f16_local0 = MBh.AnimateSequence( {
 | 
						|
				{
 | 
						|
					"animating",
 | 
						|
					100
 | 
						|
				},
 | 
						|
				{
 | 
						|
					"visible",
 | 
						|
					150
 | 
						|
				}
 | 
						|
			} )
 | 
						|
		else
 | 
						|
			f16_local0 = MBh.AnimateSequence( {
 | 
						|
				{
 | 
						|
					"animating",
 | 
						|
					150
 | 
						|
				},
 | 
						|
				{
 | 
						|
					"default",
 | 
						|
					100
 | 
						|
				}
 | 
						|
			} )
 | 
						|
		end
 | 
						|
		f16_local0( f16_arg0, {} )
 | 
						|
	end
 | 
						|
	
 | 
						|
	f15_local5:registerOmnvarHandler( "ui_alien_chaos_grace_period", function ( f17_arg0, f17_arg1 )
 | 
						|
		f15_local6( f17_arg0, f17_arg1.value )
 | 
						|
	end )
 | 
						|
	if f15_local2 > 0 then
 | 
						|
		f15_local6( f15_local5, f15_local2 )
 | 
						|
	end
 | 
						|
	local f15_local7 = LUI.UIImage.new( {
 | 
						|
		material = RegisterMaterial( "hud_box_combo_time" ),
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = 0,
 | 
						|
		bottom = 0,
 | 
						|
		left = 0,
 | 
						|
		right = 0
 | 
						|
	} )
 | 
						|
	f15_local7.id = "background"
 | 
						|
	f15_local5:addElement( f15_local7 )
 | 
						|
	local f15_local8 = LUI.UICountdown.new()
 | 
						|
	f15_local8:registerAnimationState( "default", {
 | 
						|
		font = CoD.TextSettings.ExtraBigFont.Font,
 | 
						|
		alignment = LUI.Alignment.center,
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = false,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		left = 0,
 | 
						|
		top = 15.5,
 | 
						|
		right = 0,
 | 
						|
		height = CoD.TextSettings.ExtraBigFont.Height,
 | 
						|
		red = 1,
 | 
						|
		green = 1,
 | 
						|
		blue = 1,
 | 
						|
		alpha = 1
 | 
						|
	} )
 | 
						|
	f15_local8:animateToState( "default" )
 | 
						|
	f15_local8.id = "value"
 | 
						|
	f15_local8.isPulsing = false
 | 
						|
	f15_local8:setTextStyle( CoD.TextStyle.Outlined )
 | 
						|
	f15_local8:setEndTime( f15_local2 )
 | 
						|
	f15_local8:registerOmnvarHandler( "ui_alien_chaos_grace_period", function ( f18_arg0, f18_arg1 )
 | 
						|
		f18_arg0:setEndTime( f18_arg1.value )
 | 
						|
		f18_arg0:animateToState( "default" )
 | 
						|
		f18_arg0.currentBeepIndex = 1
 | 
						|
		f18_arg0.isPulsing = false
 | 
						|
	end )
 | 
						|
	f15_local8:registerAnimationState( "pulse", {
 | 
						|
		red = 1,
 | 
						|
		blue = 0,
 | 
						|
		green = 0,
 | 
						|
		alpha = 1
 | 
						|
	} )
 | 
						|
	f15_local5:addElement( f15_local8 )
 | 
						|
	f15_local8.currentBeepIndex = 1
 | 
						|
	f15_local8:registerEventHandler( "timer_pulse_check", function ( element, event )
 | 
						|
		local f19_local0 = Game.GetTime()
 | 
						|
		local f19_local1 = Game.GetOmnvar( "ui_alien_chaos_grace_period" )
 | 
						|
		local f19_local2 = false
 | 
						|
		if element.currentBeepIndex <= #f15_local3 and f19_local1 - f19_local0 <= f15_local3[element.currentBeepIndex].time and f19_local1 > 0 then
 | 
						|
			Engine.PlaySound( f15_local3[element.currentBeepIndex].alias )
 | 
						|
			f19_local2 = true
 | 
						|
			element.currentBeepIndex = element.currentBeepIndex + 1
 | 
						|
		end
 | 
						|
		if not element.isPulsing == true then
 | 
						|
			if f19_local2 == true then
 | 
						|
				local f19_local3 = MBh.AnimateSequence( {
 | 
						|
					{
 | 
						|
						"pulse",
 | 
						|
						0
 | 
						|
					},
 | 
						|
					{
 | 
						|
						"pulse",
 | 
						|
						450
 | 
						|
					},
 | 
						|
					{
 | 
						|
						"default",
 | 
						|
						0
 | 
						|
					},
 | 
						|
					{
 | 
						|
						"default",
 | 
						|
						450
 | 
						|
					}
 | 
						|
				} )
 | 
						|
				f19_local3( element )
 | 
						|
				element:registerEventHandlerIfFree( LUI.FormatAnimStateFinishEvent( "default" ), function ( f20_arg0, f20_arg1 )
 | 
						|
					f20_arg0.isPulsing = false
 | 
						|
					f19_local2 = false
 | 
						|
				end )
 | 
						|
			end
 | 
						|
		elseif element.isPulsing == true and f19_local2 == false then
 | 
						|
			element:animateToState( "default" )
 | 
						|
			element.isPulsing = false
 | 
						|
		end
 | 
						|
	end )
 | 
						|
	local f15_local9 = LUI.UITimer.new( 50, "timer_pulse_check" )
 | 
						|
	f15_local9.id = "pulseTimer"
 | 
						|
	f15_local8:addElement( f15_local9 )
 | 
						|
	self:addElement( f15_local5 )
 | 
						|
	return self
 | 
						|
end
 | 
						|
 | 
						|
ChaosPerksLUT = {
 | 
						|
	file = "mp/alien/chaos_perks.csv",
 | 
						|
	index = 2,
 | 
						|
	icon = 3
 | 
						|
}
 | 
						|
function CountChaosPerks()
 | 
						|
	local f21_local0 = 32
 | 
						|
	for f21_local1 = 1, f21_local0, 1 do
 | 
						|
		if Engine.TableLookup( ChaosPerksLUT.file, ChaosPerksLUT.index, tostring( f21_local1 ), 0 ) == "" then
 | 
						|
			return f21_local1 - 1
 | 
						|
		end
 | 
						|
	end
 | 
						|
	return f21_local0
 | 
						|
end
 | 
						|
 | 
						|
function GetChaosPerksIcon( f22_arg0 )
 | 
						|
	return Engine.TableLookup( ChaosPerksLUT.file, ChaosPerksLUT.index, tostring( f22_arg0 ), ChaosPerksLUT.icon )
 | 
						|
end
 | 
						|
 | 
						|
function chaos_perks()
 | 
						|
	local f23_local0 = 8
 | 
						|
	local f23_local1 = 36
 | 
						|
	local f23_local2 = 8
 | 
						|
	local f23_local3 = CountChaosPerks()
 | 
						|
	local f23_local4 = f23_local0 * f23_local1 + f23_local2 * (2 + math.max( 0, f23_local3 - 1 ))
 | 
						|
	local f23_local5 = math.ceil( f23_local3 / f23_local0 ) * f23_local1 + f23_local2 * (2 + math.max( 0, f23_local3 - 1 ))
 | 
						|
	local f23_local6 = 60
 | 
						|
	local self = LUI.UIElement.new( {
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = false,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = false,
 | 
						|
		top = 0,
 | 
						|
		bottom = f23_local5,
 | 
						|
		left = 0,
 | 
						|
		width = f23_local4
 | 
						|
	} )
 | 
						|
	self.id = "chaos_perks"
 | 
						|
	self.perkElements = {}
 | 
						|
	local f23_local8 = LUI.UIImage.new( {
 | 
						|
		material = RegisterMaterial( "alien_health_bg_shadow" ),
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = -f23_local6,
 | 
						|
		bottom = 0,
 | 
						|
		left = -f23_local6,
 | 
						|
		right = f23_local6,
 | 
						|
		alpha = 0.8
 | 
						|
	} )
 | 
						|
	f23_local8.id = "background"
 | 
						|
	self:addElement( f23_local8 )
 | 
						|
	local f23_local9 = LUI.UIGrid.new( {
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = f23_local2,
 | 
						|
		bottom = -f23_local2,
 | 
						|
		left = f23_local2,
 | 
						|
		right = -f23_local2
 | 
						|
	}, {
 | 
						|
		elementsPerRow = f23_local0,
 | 
						|
		rowHeight = f23_local1,
 | 
						|
		hSpacing = f23_local2,
 | 
						|
		vSpacing = f23_local2
 | 
						|
	} )
 | 
						|
	f23_local9.id = "grid"
 | 
						|
	self:addElement( f23_local9 )
 | 
						|
	for f23_local10 = 1, f23_local3, 1 do
 | 
						|
		local f23_local13 = f23_local10
 | 
						|
		local f23_local14 = GetChaosPerksIcon( f23_local13 )
 | 
						|
		local f23_local15 = LUI.UIElement.new( {
 | 
						|
			topAnchor = true,
 | 
						|
			bottomAnchor = false,
 | 
						|
			leftAnchor = true,
 | 
						|
			rightAnchor = false,
 | 
						|
			top = 0,
 | 
						|
			bottom = f23_local1,
 | 
						|
			left = 0,
 | 
						|
			right = f23_local1,
 | 
						|
			scale = 0
 | 
						|
		} )
 | 
						|
		f23_local15:registerAnimationState( "smaller", {
 | 
						|
			scale = -0.2
 | 
						|
		} )
 | 
						|
		f23_local15:registerAnimationState( "bigger", {
 | 
						|
			scale = 0.2
 | 
						|
		} )
 | 
						|
		f23_local15.id = "perk_" .. f23_local13
 | 
						|
		f23_local9:addElement( f23_local15 )
 | 
						|
		self.perkElements[f23_local13] = f23_local15
 | 
						|
		local f23_local16 = LUI.UIImage.new( {
 | 
						|
			material = RegisterMaterial( "hud_box_combo_perk" ),
 | 
						|
			topAnchor = true,
 | 
						|
			bottomAnchor = true,
 | 
						|
			leftAnchor = true,
 | 
						|
			rightAnchor = true,
 | 
						|
			top = 0,
 | 
						|
			bottom = 0,
 | 
						|
			left = 0,
 | 
						|
			right = 0,
 | 
						|
			alpha = 0.1
 | 
						|
		} )
 | 
						|
		f23_local16:registerAnimationState( "active", {
 | 
						|
			alpha = 0.8
 | 
						|
		} )
 | 
						|
		f23_local16.id = "perkBG"
 | 
						|
		f23_local15:addElement( f23_local16 )
 | 
						|
		local f23_local17 = LUI.UIImage.new( {
 | 
						|
			material = RegisterMaterial( f23_local14 ),
 | 
						|
			topAnchor = true,
 | 
						|
			bottomAnchor = true,
 | 
						|
			leftAnchor = true,
 | 
						|
			rightAnchor = true,
 | 
						|
			top = 0,
 | 
						|
			bottom = 0,
 | 
						|
			left = 0,
 | 
						|
			right = 0,
 | 
						|
			alpha = 0.2
 | 
						|
		} )
 | 
						|
		f23_local17:registerAnimationState( "active", {
 | 
						|
			alpha = 1
 | 
						|
		} )
 | 
						|
		f23_local17.id = "perkIcon"
 | 
						|
		f23_local15:addElement( f23_local17 )
 | 
						|
		f23_local15.bg = f23_local16
 | 
						|
		f23_local15.icon = f23_local17
 | 
						|
		f23_local15:registerEventHandler( "activate", function ( element, event )
 | 
						|
			if not element.active then
 | 
						|
				local f24_local0 = MBh.AnimateSequence( {
 | 
						|
					{
 | 
						|
						"default",
 | 
						|
						0
 | 
						|
					},
 | 
						|
					{
 | 
						|
						"smaller",
 | 
						|
						250
 | 
						|
					},
 | 
						|
					{
 | 
						|
						"bigger",
 | 
						|
						100
 | 
						|
					},
 | 
						|
					{
 | 
						|
						"default",
 | 
						|
						150
 | 
						|
					}
 | 
						|
				} )
 | 
						|
				local f24_local1 = MBh.AnimateSequence( {
 | 
						|
					{
 | 
						|
						"default",
 | 
						|
						0
 | 
						|
					},
 | 
						|
					{
 | 
						|
						"active",
 | 
						|
						100
 | 
						|
					}
 | 
						|
				} )
 | 
						|
				local f24_local2 = MBh.AnimateSequence( {
 | 
						|
					{
 | 
						|
						"default",
 | 
						|
						0
 | 
						|
					},
 | 
						|
					{
 | 
						|
						"active",
 | 
						|
						100
 | 
						|
					}
 | 
						|
				} )
 | 
						|
				f24_local0( element, {} )
 | 
						|
				f24_local1( element.bg, {} )
 | 
						|
				f24_local2( element.icon, {} )
 | 
						|
				element.active = true
 | 
						|
			end
 | 
						|
		end )
 | 
						|
		f23_local15:registerEventHandler( "deactivate", function ( element, event )
 | 
						|
			if element.active then
 | 
						|
				local f25_local0 = 80 * (f23_local3 - f23_local13)
 | 
						|
				local f25_local1 = MBh.AnimateSequence( {
 | 
						|
					{
 | 
						|
						"default",
 | 
						|
						f25_local0
 | 
						|
					},
 | 
						|
					{
 | 
						|
						"bigger",
 | 
						|
						250
 | 
						|
					},
 | 
						|
					{
 | 
						|
						"smaller",
 | 
						|
						100
 | 
						|
					},
 | 
						|
					{
 | 
						|
						"default",
 | 
						|
						150
 | 
						|
					}
 | 
						|
				} )
 | 
						|
				f25_local1( element, {} )
 | 
						|
				f25_local1 = MBh.AnimateSequence( {
 | 
						|
					{
 | 
						|
						"active",
 | 
						|
						f25_local0
 | 
						|
					},
 | 
						|
					{
 | 
						|
						"default",
 | 
						|
						200
 | 
						|
					}
 | 
						|
				} )
 | 
						|
				f25_local1( element.bg, {} )
 | 
						|
				f25_local1 = MBh.AnimateSequence( {
 | 
						|
					{
 | 
						|
						"active",
 | 
						|
						f25_local0
 | 
						|
					},
 | 
						|
					{
 | 
						|
						"default",
 | 
						|
						200
 | 
						|
					}
 | 
						|
				} )
 | 
						|
				f25_local1( element.icon, {} )
 | 
						|
				element.active = nil
 | 
						|
			end
 | 
						|
		end )
 | 
						|
	end
 | 
						|
	self:registerOmnvarHandler( "ui_chaos_perk", function ( f26_arg0, f26_arg1 )
 | 
						|
		if f26_arg1.value == 0 then
 | 
						|
			f23_local9:processEvent( {
 | 
						|
				name = "deactivate"
 | 
						|
			} )
 | 
						|
		end
 | 
						|
	end )
 | 
						|
	self.getPerkElement = function ( f27_arg0, f27_arg1 )
 | 
						|
		return f27_arg0.perkElements[f27_arg1]
 | 
						|
	end
 | 
						|
	
 | 
						|
	local f23_local10 = Game.GetOmnvar( "ui_chaos_perk" )
 | 
						|
	if f23_local10 > 0 then
 | 
						|
		for f23_local11 = 1, f23_local10, 1 do
 | 
						|
			local f23_local15 = self:getPerkElement( f23_local11 )
 | 
						|
			if f23_local15 then
 | 
						|
				f23_local15:processEvent( {
 | 
						|
					name = "activate"
 | 
						|
				} )
 | 
						|
			end
 | 
						|
		end
 | 
						|
	end
 | 
						|
	return self
 | 
						|
end
 | 
						|
 | 
						|
f0_local1 = 2000
 | 
						|
function chaos_perk_unlock_one( f28_arg0, f28_arg1 )
 | 
						|
	assert( f28_arg1 )
 | 
						|
	local f28_local0 = 48
 | 
						|
	local f28_local1 = f28_arg0:getPerkElement( f28_arg1 )
 | 
						|
	local self = LUI.UIElement.new( {
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = false,
 | 
						|
		leftAnchor = false,
 | 
						|
		rightAnchor = false,
 | 
						|
		top = 0,
 | 
						|
		height = f28_local0,
 | 
						|
		left = -80 - f28_local0 / 2,
 | 
						|
		width = f28_local0,
 | 
						|
		scale = 0,
 | 
						|
		alpha = 1
 | 
						|
	} )
 | 
						|
	self:registerAnimationState( "centered", {
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = false,
 | 
						|
		leftAnchor = false,
 | 
						|
		rightAnchor = false,
 | 
						|
		top = 0,
 | 
						|
		height = f28_local0,
 | 
						|
		left = -f28_local0 / 2,
 | 
						|
		width = f28_local0
 | 
						|
	} )
 | 
						|
	self:registerAnimationState( "wait", {} )
 | 
						|
	self:registerAnimationState( "hidden", {
 | 
						|
		alpha = 0
 | 
						|
	} )
 | 
						|
	self.id = "chaos_perk_unlock_one_" .. f28_arg1
 | 
						|
	local f28_local3 = MBh.AnimateSequence( {
 | 
						|
		{
 | 
						|
			"default",
 | 
						|
			0
 | 
						|
		},
 | 
						|
		{
 | 
						|
			"centered",
 | 
						|
			400
 | 
						|
		},
 | 
						|
		{
 | 
						|
			"wait",
 | 
						|
			f0_local1
 | 
						|
		}
 | 
						|
	} )
 | 
						|
	self:registerEventHandler( LUI.FormatAnimStateFinishEvent( "wait" ), function ( element, event )
 | 
						|
		self:registerAnimationState( "flyover", LUI.MakeFlyOverAnimationState( element, f28_local1 ) )
 | 
						|
		element:animateToState( "flyover", 400 )
 | 
						|
	end )
 | 
						|
	self:registerEventHandler( LUI.FormatAnimStateFinishEvent( "flyover" ), function ( element, event )
 | 
						|
		element:animateToState( "hidden", 200 )
 | 
						|
		f28_local1:processEvent( {
 | 
						|
			name = "activate"
 | 
						|
		} )
 | 
						|
	end )
 | 
						|
	self:registerEventHandler( LUI.FormatAnimStateFinishEvent( "hidden" ), function ( element, event )
 | 
						|
		element:close()
 | 
						|
	end )
 | 
						|
	f28_local3( self, {} )
 | 
						|
	local f28_local4 = LUI.UIElement.new( {
 | 
						|
		topAnchor = false,
 | 
						|
		bottomAnchor = false,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = false,
 | 
						|
		top = 0,
 | 
						|
		bottom = 1,
 | 
						|
		left = 0,
 | 
						|
		right = 0
 | 
						|
	} )
 | 
						|
	f28_local4:registerAnimationState( "horizontal", {
 | 
						|
		topAnchor = false,
 | 
						|
		bottomAnchor = false,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = 0,
 | 
						|
		bottom = 1,
 | 
						|
		left = 0,
 | 
						|
		right = 0
 | 
						|
	} )
 | 
						|
	f28_local4:registerAnimationState( "full", {
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = 0,
 | 
						|
		bottom = 0,
 | 
						|
		left = 0,
 | 
						|
		right = 0
 | 
						|
	} )
 | 
						|
	f28_local4.id = "stencil"
 | 
						|
	f28_local4:setUseStencil( true )
 | 
						|
	self:addElement( f28_local4 )
 | 
						|
	local f28_local5 = MBh.AnimateSequence( {
 | 
						|
		{
 | 
						|
			"default",
 | 
						|
			0
 | 
						|
		},
 | 
						|
		{
 | 
						|
			"horizontal",
 | 
						|
			100,
 | 
						|
			false,
 | 
						|
			false
 | 
						|
		},
 | 
						|
		{
 | 
						|
			"horizontal",
 | 
						|
			100,
 | 
						|
			false,
 | 
						|
			true
 | 
						|
		},
 | 
						|
		{
 | 
						|
			"full",
 | 
						|
			150
 | 
						|
		}
 | 
						|
	} )
 | 
						|
	f28_local5( f28_local4, {} )
 | 
						|
	f28_local5 = LUI.UIElement.new( {
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		bottom = 0,
 | 
						|
		top = 0,
 | 
						|
		left = 0,
 | 
						|
		right = 0
 | 
						|
	} )
 | 
						|
	f28_local5.id = "icon"
 | 
						|
	f28_local4:addElement( f28_local5 )
 | 
						|
	local f28_local6 = LUI.UIImage.new( {
 | 
						|
		material = RegisterMaterial( "hud_box_combo_perk" ),
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = 0,
 | 
						|
		bottom = 0,
 | 
						|
		left = 0,
 | 
						|
		right = 0,
 | 
						|
		alpha = 0.8
 | 
						|
	} )
 | 
						|
	f28_local6.id = "perkBG"
 | 
						|
	f28_local5:addElement( f28_local6 )
 | 
						|
	local f28_local7 = LUI.UIImage.new( {
 | 
						|
		material = RegisterMaterial( GetChaosPerksIcon( f28_arg1 ) ),
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = 0,
 | 
						|
		bottom = 0,
 | 
						|
		left = 0,
 | 
						|
		right = 0
 | 
						|
	} )
 | 
						|
	f28_local7.id = "perkIcon"
 | 
						|
	f28_local5:addElement( f28_local7 )
 | 
						|
	return self
 | 
						|
end
 | 
						|
 | 
						|
function chaos_perk_unlock( f32_arg0, f32_arg1 )
 | 
						|
	assert( f32_arg1.perksWidget )
 | 
						|
	local f32_local0 = {}
 | 
						|
	local f32_local1 = 16
 | 
						|
	local self = LUI.UIElement.new( {
 | 
						|
		topAnchor = false,
 | 
						|
		bottomAnchor = false,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = 114,
 | 
						|
		height = 0,
 | 
						|
		left = 0,
 | 
						|
		right = 0
 | 
						|
	} )
 | 
						|
	self.id = "chaos_perk_unlock"
 | 
						|
	self.lastUnlockTime = 0
 | 
						|
	self:registerOmnvarHandler( "ui_chaos_perk", function ( f33_arg0, f33_arg1 )
 | 
						|
		if f33_arg1.value > 0 and #f32_local0 < f32_local1 then
 | 
						|
			table.insert( f32_local0, f33_arg1.value )
 | 
						|
		end
 | 
						|
	end )
 | 
						|
	self:registerEventHandler( "refresh_unlock_perk", function ( element, event )
 | 
						|
		local f34_local0 = Game.GetTime()
 | 
						|
		if #f32_local0 > 0 and f0_local1 + 400 < f34_local0 - element.lastUnlockTime then
 | 
						|
			local f34_local1 = chaos_perk_unlock_one( f32_arg1.perksWidget, f32_local0[1] )
 | 
						|
			table.remove( f32_local0, 1 )
 | 
						|
			element:addElement( f34_local1 )
 | 
						|
			element.lastUnlockTime = f34_local0
 | 
						|
			Engine.PlaySound( "mp_intel_success" )
 | 
						|
		end
 | 
						|
	end )
 | 
						|
	local f32_local3 = LUI.UITimer.new( 100, "refresh_unlock_perk" )
 | 
						|
	f32_local3.id = "refreshTimer"
 | 
						|
	self:addElement( f32_local3 )
 | 
						|
	return self
 | 
						|
end
 | 
						|
 | 
						|
maxVisibleChaosLogEvents = 5
 | 
						|
ChaosEventLUT = {
 | 
						|
	file = "mp/alien/chaos_events.csv",
 | 
						|
	size = 256,
 | 
						|
	index = 2,
 | 
						|
	text = 3,
 | 
						|
	points = 5,
 | 
						|
	mp_alien_town = 6,
 | 
						|
	mp_alien_armory = 7,
 | 
						|
	mp_alien_beacon = 8,
 | 
						|
	mp_alien_dlc3 = 9,
 | 
						|
	mp_alien_last = 10
 | 
						|
}
 | 
						|
function GetChaosEventInfo( f35_arg0 )
 | 
						|
	return Engine.Localize( Engine.TableLookup( ChaosEventLUT.file, ChaosEventLUT.index, tostring( f35_arg0 ), ChaosEventLUT.text ) ), Engine.TableLookup( ChaosEventLUT.file, ChaosEventLUT.index, tostring( f35_arg0 ), ChaosEventLUT.points )
 | 
						|
end
 | 
						|
 | 
						|
function ChaosEventFactory( f36_arg0, f36_arg1 )
 | 
						|
	local f36_local0 = 12000
 | 
						|
	local f36_local1, f36_local2 = GetChaosEventInfo( f36_arg0 )
 | 
						|
	local self = LUI.UIElement.new( {
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = false,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = 0,
 | 
						|
		bottom = 1,
 | 
						|
		left = -80,
 | 
						|
		right = -80,
 | 
						|
		alpha = 0
 | 
						|
	} )
 | 
						|
	self:registerAnimationState( "opening", {
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = false,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = 0,
 | 
						|
		height = 20,
 | 
						|
		left = 0,
 | 
						|
		right = 0,
 | 
						|
		scale = 0.05,
 | 
						|
		alpha = 1
 | 
						|
	} )
 | 
						|
	self:registerAnimationState( "visible", {
 | 
						|
		scale = 0,
 | 
						|
		alpha = 1
 | 
						|
	} )
 | 
						|
	self:registerAnimationState( "closed", {
 | 
						|
		alpha = 0
 | 
						|
	} )
 | 
						|
	self:setUseStencil( true )
 | 
						|
	self.id = "event_" .. f36_arg1
 | 
						|
	local f36_local4 = CoD.TextSettings.SmallFont
 | 
						|
	local f36_local5, f36_local6, f36_local7, f36_local8 = GetTextDimensions( f36_local1, f36_local4.Font, f36_local4.Height )
 | 
						|
	local f36_local9 = f36_local7 - f36_local5
 | 
						|
	local f36_local10 = LUI.UIText.new( {
 | 
						|
		alignment = LUI.Alignment.Left,
 | 
						|
		font = f36_local4.Font,
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = false,
 | 
						|
		leftAnchor = false,
 | 
						|
		rightAnchor = true,
 | 
						|
		width = f36_local9,
 | 
						|
		top = 0,
 | 
						|
		right = 0,
 | 
						|
		height = f36_local4.Height
 | 
						|
	} )
 | 
						|
	f36_local10.id = "eventText"
 | 
						|
	f36_local10:setText( f36_local1 )
 | 
						|
	self:addElement( f36_local10 )
 | 
						|
	local f36_local11 = LUI.UIText.new( CoD.ColorizeState( Colors.alien_chaos_hilite, {
 | 
						|
		alignment = LUI.Alignment.Right,
 | 
						|
		font = CoD.TextSettings.SmallFont.Font,
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = false,
 | 
						|
		leftAnchor = false,
 | 
						|
		rightAnchor = true,
 | 
						|
		right = -f36_local9 - 10,
 | 
						|
		top = 0,
 | 
						|
		width = 60,
 | 
						|
		height = CoD.TextSettings.SmallFont.Height
 | 
						|
	} ) )
 | 
						|
	f36_local11.id = "eventPoints"
 | 
						|
	f36_local11:setText( f36_local2 )
 | 
						|
	self:addElement( f36_local11 )
 | 
						|
	local f36_local12 = MBh.AnimateSequence( {
 | 
						|
		{
 | 
						|
			"opening",
 | 
						|
			100
 | 
						|
		},
 | 
						|
		{
 | 
						|
			"visible",
 | 
						|
			150
 | 
						|
		}
 | 
						|
	} )
 | 
						|
	f36_local12( self, {} )
 | 
						|
	self:registerEventHandler( "close", function ( element, event )
 | 
						|
		if element.closing then
 | 
						|
			return 
 | 
						|
		else
 | 
						|
			element.closing = true
 | 
						|
			element:animateToState( "closed", 250 )
 | 
						|
		end
 | 
						|
	end )
 | 
						|
	self:registerEventHandler( LUI.FormatAnimStateFinishEvent( "closed" ), self.close )
 | 
						|
	self:registerEventHandler( "new_log_event", function ( element, event )
 | 
						|
		if element.closing then
 | 
						|
			return 
 | 
						|
		else
 | 
						|
			element.timesPushed = element.timesPushed and element.timesPushed + 1 or 1
 | 
						|
			element:registerAnimationState( "target", {
 | 
						|
				scale = 0,
 | 
						|
				alpha = LUI.clamp( 1 - element.timesPushed / math.max( 1, maxVisibleChaosLogEvents ), 0, 1 )
 | 
						|
			} )
 | 
						|
			element:animateToState( "target", 100 )
 | 
						|
		end
 | 
						|
	end )
 | 
						|
	f36_local12 = LUI.UITimer.new( f36_local0, "close", nil, true )
 | 
						|
	f36_local12.id = "expirationTimer"
 | 
						|
	self:addElement( f36_local12 )
 | 
						|
	return self
 | 
						|
end
 | 
						|
 | 
						|
function chaos_event_log()
 | 
						|
	local f39_local0 = 0
 | 
						|
	local self = LUI.UIElement.new( {
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = false,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = 60,
 | 
						|
		bottom = 0,
 | 
						|
		width = 300,
 | 
						|
		right = 0
 | 
						|
	} )
 | 
						|
	self.id = "chaos_event_log"
 | 
						|
	local f39_local2 = LUI.UIVerticalList.new( {
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = 0,
 | 
						|
		bottom = 0,
 | 
						|
		left = 0,
 | 
						|
		right = 0
 | 
						|
	} )
 | 
						|
	f39_local2.id = "vlist"
 | 
						|
	self:addElement( f39_local2 )
 | 
						|
	local f39_local3 = function ()
 | 
						|
		local f40_local0 = 0
 | 
						|
		local f40_local1 = f39_local2:getFirstChild()
 | 
						|
		while f40_local1 do
 | 
						|
			if not f40_local1.closing then
 | 
						|
				f40_local0 = f40_local0 + 1
 | 
						|
			end
 | 
						|
			f40_local1 = f40_local1:getNextSibling()
 | 
						|
		end
 | 
						|
		return f40_local0
 | 
						|
	end
 | 
						|
	
 | 
						|
	local f39_local4 = function ( f41_arg0 )
 | 
						|
		f39_local0 = f39_local0 + 1
 | 
						|
		f39_local2:processEvent( {
 | 
						|
			name = "new_log_event"
 | 
						|
		} )
 | 
						|
		local f41_local0 = ChaosEventFactory( f41_arg0, f39_local0 )
 | 
						|
		f41_local0:setPriority( -f39_local0 )
 | 
						|
		f39_local2:addElement( f41_local0 )
 | 
						|
		if f39_local3() > maxVisibleChaosLogEvents then
 | 
						|
			local f41_local1 = f39_local2:getLastChild()
 | 
						|
			f41_local1:processEvent( {
 | 
						|
				name = "close"
 | 
						|
			} )
 | 
						|
		end
 | 
						|
	end
 | 
						|
	
 | 
						|
	self:registerOmnvarHandler( "ui_chaos_event", function ( f42_arg0, f42_arg1 )
 | 
						|
		f39_local4( f42_arg1.value )
 | 
						|
	end )
 | 
						|
	self:registerEventHandler( "fake_event", function ()
 | 
						|
		f39_local4( 1 + math.floor( 8 * math.random() ) )
 | 
						|
	end )
 | 
						|
	return self
 | 
						|
end
 | 
						|
 | 
						|
function chaos_event_recap()
 | 
						|
	local f44_local0 = LUI.mp_hud.AlienScoreboards
 | 
						|
	local self = LUI.UIElement.new( {
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = 0,
 | 
						|
		bottom = 0,
 | 
						|
		left = 0,
 | 
						|
		right = 0,
 | 
						|
		scale = Engine.UsingSplitscreenUpscaling() and -0.25 or 0
 | 
						|
	} )
 | 
						|
	self.id = "chaos_event_recap"
 | 
						|
	local f44_local2 = f44_local0.table_factory( 21, {
 | 
						|
		80,
 | 
						|
		350,
 | 
						|
		80
 | 
						|
	}, 4, LUI.Alignment.Middle )
 | 
						|
	f44_local2:registerAnimationState( "default", {
 | 
						|
		topAnchor = false,
 | 
						|
		bottomAnchor = false,
 | 
						|
		leftAnchor = false,
 | 
						|
		rightAnchor = false,
 | 
						|
		top = 0,
 | 
						|
		left = -255,
 | 
						|
		width = 510,
 | 
						|
		bottom = 0
 | 
						|
	} )
 | 
						|
	f44_local2:animateToState( "default" )
 | 
						|
	self:addElement( f44_local2 )
 | 
						|
	f44_local2.addHeader( Engine.Localize( "ALIEN_CHAOS_RECAP_TITLE" ) )
 | 
						|
	local f44_local3 = {
 | 
						|
		r = Colors.alien_tech_tree_bright_grey.r,
 | 
						|
		g = Colors.alien_tech_tree_bright_grey.g,
 | 
						|
		b = Colors.alien_tech_tree_bright_grey.b,
 | 
						|
		a = 1
 | 
						|
	}
 | 
						|
	f44_local2.addRow( f44_local0.bgPalette.Dark, {
 | 
						|
		{
 | 
						|
			text = Engine.Localize( "ALIEN_CHAOS_RECAP_VALUE" ),
 | 
						|
			color = f44_local3,
 | 
						|
			align = LUI.Alignment.Left
 | 
						|
		},
 | 
						|
		{
 | 
						|
			text = Engine.Localize( "ALIEN_CHAOS_RECAP_EVENT" ),
 | 
						|
			color = f44_local3,
 | 
						|
			align = LUI.Alignment.Center
 | 
						|
		},
 | 
						|
		{
 | 
						|
			text = Engine.Localize( "ALIEN_CHAOS_RECAP_COUNT" ),
 | 
						|
			color = f44_local3,
 | 
						|
			align = LUI.Alignment.Left
 | 
						|
		}
 | 
						|
	}, false )
 | 
						|
	local f44_local4 = 0
 | 
						|
	local f44_local5 = Engine.GetDvarString( "ui_mapname" )
 | 
						|
	repeat
 | 
						|
		if Engine.TableLookupByRow( ChaosEventLUT.file, f44_local4, 0 ) == "" then
 | 
						|
			break
 | 
						|
		else
 | 
						|
			local f44_local6 = Engine.TableLookupByRow( ChaosEventLUT.file, f44_local4, ChaosEventLUT.index )
 | 
						|
			local f44_local7 = true
 | 
						|
			if ChaosEventLUT[f44_local5] then
 | 
						|
				f44_local7 = tonumber( Engine.TableLookupByRow( ChaosEventLUT.file, f44_local4, ChaosEventLUT[f44_local5] ) ) == 1
 | 
						|
			end
 | 
						|
			if f44_local6 and tonumber( f44_local6 ) and tonumber( f44_local6 ) > 0 and f44_local7 then
 | 
						|
				local f44_local8 = Game.GetOmnvar( "ui_alien_eog_score_row_" .. f44_local6 )
 | 
						|
				if f44_local8 then
 | 
						|
					local f44_local9, f44_local10 = GetChaosEventInfo( f44_local6 )
 | 
						|
					f44_local2.addRow( f44_local0.bgPalette.Dark, {
 | 
						|
						{
 | 
						|
							text = f44_local10,
 | 
						|
							color = Colors.alien_scoreboard_dull_grey,
 | 
						|
							align = LUI.Alignment.Right
 | 
						|
						},
 | 
						|
						{
 | 
						|
							text = f44_local9,
 | 
						|
							color = Colors.alien_scoreboard_dull_grey,
 | 
						|
							align = LUI.Alignment.Left
 | 
						|
						},
 | 
						|
						{
 | 
						|
							text = f44_local8,
 | 
						|
							color = Colors.alien_chaos_hilite,
 | 
						|
							align = LUI.Alignment.Left,
 | 
						|
							pretty = {
 | 
						|
								initialValue = 0,
 | 
						|
								speed = math.max( 40, f44_local10 / 3 )
 | 
						|
							}
 | 
						|
						}
 | 
						|
					}, 40 )
 | 
						|
				end
 | 
						|
			end
 | 
						|
			f44_local4 = f44_local4 + 1
 | 
						|
		end
 | 
						|
	until f44_local4 >= ChaosEventLUT.size
 | 
						|
	return self
 | 
						|
end
 | 
						|
 | 
						|
function quick_shop_freeze_item()
 | 
						|
	local self = LUI.UIElement.new( {
 | 
						|
		topAnchor = true,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = 0,
 | 
						|
		bottom = 0,
 | 
						|
		left = 0,
 | 
						|
		right = 0,
 | 
						|
		alpha = 0
 | 
						|
	} )
 | 
						|
	self:registerAnimationState( "visible", {
 | 
						|
		alpha = 1
 | 
						|
	} )
 | 
						|
	self.id = "element"
 | 
						|
	local f45_local1 = function ( f46_arg0, f46_arg1 )
 | 
						|
		local f46_local0 = f46_arg0
 | 
						|
		local f46_local1 = f46_arg0.animateToState
 | 
						|
		local f46_local2
 | 
						|
		if f46_arg1 then
 | 
						|
			f46_local2 = "visible"
 | 
						|
			if not f46_local2 then
 | 
						|
			
 | 
						|
			else
 | 
						|
				f46_local1( f46_local0, f46_local2, 100 )
 | 
						|
			end
 | 
						|
		end
 | 
						|
		f46_local2 = "default"
 | 
						|
	end
 | 
						|
	
 | 
						|
	self:registerOmnvarHandler( "ui_alien_chaos_has_meter_freeze", function ( f47_arg0, f47_arg1 )
 | 
						|
		f45_local1( f47_arg0, f47_arg1.value )
 | 
						|
	end )
 | 
						|
	f45_local1( self, Game.GetOmnvar( "ui_alien_chaos_has_meter_freeze" ) )
 | 
						|
	self:addElement( LUI.mp_hud.AlienHud.quick_shop_item( LUI.Alignment.Bottom, nil, function ()
 | 
						|
		return "alien_dpad_icon_freeze"
 | 
						|
	end ) )
 | 
						|
	return self
 | 
						|
end
 | 
						|
 | 
						|
function chaos_class_skill_item()
 | 
						|
	local f49_local0 = 40
 | 
						|
	local f49_local1 = 8
 | 
						|
	local self = LUI.UIElement.new( {
 | 
						|
		topAnchor = false,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = false,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = -210,
 | 
						|
		bottom = -170,
 | 
						|
		left = -100,
 | 
						|
		right = -60,
 | 
						|
		alpha = 1
 | 
						|
	} )
 | 
						|
	self.id = "chaos_class_skill_item"
 | 
						|
	local f49_local3 = LUI.UIImage.new()
 | 
						|
	f49_local3.id = "arrow"
 | 
						|
	f49_local3:registerAnimationState( "default", {
 | 
						|
		material = RegisterMaterial( "alien_dpad_arrow_up" ),
 | 
						|
		topAnchor = false,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = false,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = -9,
 | 
						|
		left = -30,
 | 
						|
		width = 21,
 | 
						|
		height = 11,
 | 
						|
		red = 1,
 | 
						|
		green = 1,
 | 
						|
		blue = 1,
 | 
						|
		alpha = 0
 | 
						|
	} )
 | 
						|
	f49_local3:registerAnimationState( "enabled", CoD.ColorizeState( Colors.white, {
 | 
						|
		alpha = 0.8
 | 
						|
	} ) )
 | 
						|
	f49_local3:animateToState( "default" )
 | 
						|
	f49_local3:registerOmnvarHandler( "ui_alien_chaos_class_skill_bonus", function ( f50_arg0, f50_arg1 )
 | 
						|
		if f50_arg1.value == 0 then
 | 
						|
			f50_arg0:animateToState( "default" )
 | 
						|
		else
 | 
						|
			f50_arg0:animateToState( "enabled" )
 | 
						|
		end
 | 
						|
	end )
 | 
						|
	local f49_local4 = LUI.UIImage.new( {
 | 
						|
		topAnchor = false,
 | 
						|
		bottomAnchor = true,
 | 
						|
		leftAnchor = true,
 | 
						|
		rightAnchor = true,
 | 
						|
		top = -50,
 | 
						|
		bottom = -10,
 | 
						|
		left = 0,
 | 
						|
		right = 0,
 | 
						|
		alpha = 1
 | 
						|
	} )
 | 
						|
	f49_local4:registerAnimationState( "hidden", {
 | 
						|
		material = RegisterMaterial( "white" ),
 | 
						|
		alpha = 0
 | 
						|
	} )
 | 
						|
	f49_local4:registerAnimationState( "specialist", {
 | 
						|
		material = RegisterMaterial( "hud_alien_ammo_infinite" ),
 | 
						|
		alpha = 1
 | 
						|
	} )
 | 
						|
	f49_local4:registerAnimationState( "tank", {
 | 
						|
		material = RegisterMaterial( "alien_icon_tank" ),
 | 
						|
		alpha = 1
 | 
						|
	} )
 | 
						|
	f49_local4:registerAnimationState( "engineer", {
 | 
						|
		material = RegisterMaterial( "alien_icon_engineer" ),
 | 
						|
		alpha = 1
 | 
						|
	} )
 | 
						|
	f49_local4:registerAnimationState( "medic", {
 | 
						|
		material = RegisterMaterial( "alien_icon_medic" ),
 | 
						|
		alpha = 1
 | 
						|
	} )
 | 
						|
	f49_local4:animateToState( "hidden" )
 | 
						|
	f49_local4:registerOmnvarHandler( "ui_alien_chaos_class_skill_bonus", function ( f51_arg0, f51_arg1 )
 | 
						|
		if f51_arg1.value == 0 then
 | 
						|
			f51_arg0:animateToState( "hidden" )
 | 
						|
		elseif f51_arg1.value == 1 then
 | 
						|
			f51_arg0:animateToState( "specialist" )
 | 
						|
		elseif f51_arg1.value == 2 then
 | 
						|
			f51_arg0:animateToState( "tank" )
 | 
						|
		elseif f51_arg1.value == 3 then
 | 
						|
			f51_arg0:animateToState( "engineer" )
 | 
						|
		elseif f51_arg1.value == 4 then
 | 
						|
			f51_arg0:animateToState( "medic" )
 | 
						|
		end
 | 
						|
	end )
 | 
						|
	self:addElement( f49_local4 )
 | 
						|
	self:addElement( f49_local3 )
 | 
						|
	return self
 | 
						|
end
 | 
						|
 | 
						|
LUI.MenuBuilder.registerType( "chaos_main_score", chaos_main_score )
 | 
						|
LUI.MenuBuilder.registerType( "chaos_combo_meter", chaos_combo_meter )
 | 
						|
LUI.MenuBuilder.registerType( "chaos_clock", chaos_clock )
 | 
						|
LUI.MenuBuilder.registerType( "chaos_perks", chaos_perks )
 | 
						|
LUI.MenuBuilder.registerType( "chaos_perk_unlock", chaos_perk_unlock )
 | 
						|
LUI.MenuBuilder.registerType( "chaos_event_log", chaos_event_log )
 | 
						|
LUI.MenuBuilder.registerType( "chaos_event_recap", chaos_event_recap )
 | 
						|
LUI.MenuBuilder.registerType( "quick_shop_freeze_item", quick_shop_freeze_item )
 | 
						|
LUI.MenuBuilder.registerType( "chaos_class_skill_item", chaos_class_skill_item )
 | 
						|
LockTable( _M )
 |