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

315 lines
7.9 KiB
Lua

local f0_local0 = module
local f0_local1, f0_local2 = ...
f0_local0( f0_local1, package.seeall )
CoD.PrintModuleLoad( _NAME )
f0_local0 = {
"icon_perks_ready_up",
"icon_perks_sleight_of_hand",
"icon_perks_agility",
"icon_perks_marathon",
"icon_perks_stalker",
"icon_perks_strong_arm",
"icon_perks_on_the_go",
"icon_perks_reflex",
"icon_perks_steady_aim",
"icon_perks_quickdraw",
"icon_perks_takedown",
"icon_perks_blind_eye",
"icon_perks_dead_silence",
"icon_perks_incog",
"icon_perks_assassin",
"icon_perks_recon",
"icon_perks_scavenger",
"icon_perks_sitrep",
"icon_perks_amplifier",
"icon_perks_com_link",
"icon_perks_resiliance",
"icon_perks_icu",
"icon_perks_focus",
"icon_perks_tac_resist",
"icon_perks_blast_shield",
"icon_perks_danger_close",
"icon_perks_ping",
"icon_perks_deadeye"
}
f0_local1 = function ( f1_arg0, f1_arg1 )
if f1_arg1.value == -1 then
f1_arg0:animateToState( "finished", 0 )
elseif f1_arg1.value == 1 then
local f1_local0 = f1_arg0:getChildById( "digHudPerkTextContainer" )
local f1_local1 = f1_arg0:getChildById( "digHudPerkRow" )
local f1_local2 = MBh.AnimateSequence( {
{
"active",
0
},
{
"active",
3500
},
{
"finished",
500
}
} )
f1_local2( f1_arg0 )
local f1_local3 = MBh.AnimateSequence( {
{
"opening",
50
},
{
"active",
100
},
{
"active",
3850
},
{
"default",
0
}
} )
f1_local3( f1_local0 )
f1_local1:processEvent( {
name = "start_scroll",
slowScrollCount = 7,
slowScrollTime = 175,
fastScrollTime = 60,
immediate = true
} )
end
end
LUI.MenuBuilder.registerType( "digKillstreakHudDef", function ()
local f2_local0 = 64
local f2_local1 = 64
local f2_local2 = 8
local f2_local3 = f2_local1 * f2_local2
local self = LUI.UIElement.new()
self.id = "digHud"
self:registerAnimationState( "default", {
topAnchor = true,
bottomAnchor = true,
leftAnchor = true,
rightAnchor = true,
top = 0,
bottom = 0,
left = 0,
right = 0
} )
self:animateToState( "default" )
local f2_local5 = LUI.UIElement.new()
f2_local5.id = "digHudContainer"
f2_local5:registerAnimationState( "default", {
topAnchor = true,
bottomAnchor = false,
leftAnchor = false,
rightAnchor = false,
top = 40,
bottom = 80,
left = -200,
right = 200,
alpha = 0
} )
f2_local5:registerAnimationState( "active", {
alpha = 1
} )
f2_local5:registerAnimationState( "inactive", {
alpha = 0
} )
f2_local5:registerAnimationState( "finished", {
alpha = 0
} )
f2_local5:animateToState( "default" )
f2_local5:registerOmnvarHandler( "ui_dig_killstreak_show", f0_local1 )
f2_local5:registerEventHandler( "transition_complete_finished", function ( element, event )
element:dispatchEventToChildren( {
name = "request_stop_scroll"
} )
end )
local f2_local6 = LUI.UIHorizontalList.new()
f2_local6.id = "digHudPerkRow"
f2_local6:registerAnimationState( "default", {
topAnchor = true,
bottomAnchor = true,
leftAnchor = false,
rightAnchor = false,
top = 0,
bottom = 0,
left = -f2_local3 * 0.5 + f2_local1 * 0.5,
width = f2_local3,
alignment = LUI.Alignment.Left,
alpha = 1
} )
f2_local6:registerAnimationState( "scrolled", {
topAnchor = true,
bottomAnchor = true,
leftAnchor = false,
rightAnchor = false,
top = 0,
bottom = 0,
left = -f2_local3 * 0.5 - f2_local1 * 0.5,
width = f2_local3,
alpha = 1
} )
f2_local6:animateToState( "default" )
f2_local6:registerEventHandler( "start_scroll", function ( element, event )
element:animateToState( "default", 0 )
element.scrollCount = 0
element.slowScrollCount = event.slowScrollCount
element.slowScrollTime = event.slowScrollTime
element.fastScrollTime = event.fastScrollTime
element:processEvent( {
name = "next_scroll",
immediate = true
} )
end )
f2_local6:registerEventHandler( "next_scroll", function ( element, event )
local f5_local0 = element.scrollCount
local f5_local1 = element.slowScrollCount
f5_local0 = REG7 and element.slowScrollTime or element.fastScrollTime
element:animateToState( "scrolled", f5_local0 )
element:dispatchEventToChildren( {
name = "start_scroll",
scrollTime = f5_local0,
immediate = true
} )
end )
f2_local6:registerEventHandler( "transition_complete_scrolled", function ( element, event )
if element.requestStopScroll then
element.requestStopScroll = nil
element.scrollCount = nil
else
element.scrollCount = element.scrollCount + 1
element:animateToState( "default", 0 )
element:dispatchEventToChildren( {
name = "cycle_material",
immediate = true
} )
element:processEvent( {
name = "next_scroll",
immediate = true
} )
end
end )
f2_local6:registerEventHandler( "request_stop_scroll", function ( element, event )
if element.scrollCount then
element.requestStopScroll = true
end
end )
for f2_local7 = 1, f2_local2, 1 do
local f2_local10 = f2_local7
local f2_local11 = LUI.UIElement.new()
f2_local11.id = "digHudPerkIconContainer" .. f2_local10
f2_local11:registerAnimationState( "default", {
topAnchor = false,
leftAnchor = false,
bottomAnchor = false,
rightAnchor = false,
top = -f2_local0 / 2,
left = -f2_local1 / 2,
bottom = f2_local0 / 2,
right = f2_local1 / 2,
alpha = 1
} )
f2_local11:registerAnimationState( "hidden", {
alpha = 0
} )
f2_local11:animateToState( "default" )
f2_local11:registerEventHandler( "start_scroll", function ( element, event )
if f2_local10 == 1 then
element:animateToState( "default", 0 )
element:animateToState( "hidden", event.scrollTime )
elseif f2_local10 == f2_local2 then
element:animateToState( "hidden", 0 )
element:animateToState( "default", event.scrollTime )
end
end )
f2_local6:addElement( f2_local11 )
local f2_local12 = LUI.UIImage.new()
f2_local12.id = "digHudPerkIcon" .. f2_local10
f2_local12.materialID = f2_local10
f2_local12:registerAnimationState( "default", {
topAnchor = true,
leftAnchor = true,
bottomAnchor = true,
rightAnchor = true,
top = 0,
left = 0,
bottom = 0,
right = 0,
material = RegisterMaterial( f0_local0[f2_local12.materialID] )
} )
f2_local12:animateToState( "default" )
f2_local12:registerEventHandler( "cycle_material", function ( element, event )
element.materialID = element.materialID + 1
if #f0_local0 < element.materialID then
element.materialID = 1
end
element:registerAnimationState( "updatedMaterial", {
material = RegisterMaterial( f0_local0[element.materialID] )
} )
element:animateToState( "updatedMaterial", 0 )
end )
f2_local11:addElement( f2_local12 )
end
local f2_local7 = LUI.UIElement.new()
f2_local7.id = "digHudPerkTextContainer"
f2_local7:registerAnimationState( "default", {
topAnchor = true,
bottomAnchor = false,
leftAnchor = false,
rightAnchor = false,
bottom = 80,
height = 20,
width = 200,
alpha = 0
} )
f2_local7:registerAnimationState( "opening", {
topAnchor = true,
bottomAnchor = false,
leftAnchor = false,
rightAnchor = false,
bottom = 80,
height = 40,
width = 400,
alpha = 1
} )
f2_local7:registerAnimationState( "active", {
topAnchor = true,
bottomAnchor = false,
leftAnchor = false,
rightAnchor = false,
bottom = 80,
height = 20,
width = 200,
alpha = 1
} )
f2_local7:animateToState( "default" )
local f2_local8 = LUI.UIText.new()
f2_local8.id = "digHudPerkText"
f2_local8:registerAnimationState( "default", {
topAnchor = true,
bottomAnchor = true,
leftAnchor = true,
rightAnchor = true,
font = CoD.TextSettings.NormalFont.Font,
alignment = LUI.Alignment.Center,
red = Colors.white.r,
green = Colors.white.g,
blue = Colors.white.b,
alpha = 1
} )
f2_local8:animateToState( "default" )
f2_local8:setText( Engine.Localize( "@MP_DIG_LEVEL_KILLSTREAK_ACTIVATED" ) )
f2_local8:setTextStyle( CoD.TextStyle.Shadowed )
f2_local7:addElement( f2_local8 )
f2_local5:addElement( f2_local6 )
f2_local5:addElement( f2_local7 )
self:addElement( f2_local5 )
return self
end )
LockTable( _M )