You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
2.2 KiB
66 lines
2.2 KiB
-- __ _ _______ _ __
|
|
-- / / /\ | | |__ __| | | \ \
|
|
-- / / / \ | |_ __ ___ | | ___ ___| |__ \ \
|
|
-- < < / /\ \ | | '_ ` _ \| |/ _ \/ __| '_ \ > >
|
|
-- \ \ / ____ \| | | | | | | | __/ (__| | | | / /
|
|
-- \_\ /_/ \_\_|_| |_| |_|_|\___|\___|_| |_| /_/
|
|
|
|
local enabledHUDs = {
|
|
["CHudChat"] = true,
|
|
["CHudGMod"] = true
|
|
}
|
|
|
|
hook.Add( "HUDShouldDraw", "Quantum_RemoveDefualtHUD", function( hudid )
|
|
return enabledHUDs[hudid] ~= nil
|
|
end)
|
|
|
|
|
|
local scale = Quantum.Client.ResolutionScale
|
|
local barW, barH = 250 * scale, 10 * scale
|
|
local padding = 2 * scale
|
|
local sw, sh = ScrW(), ScrH()
|
|
|
|
function GM:HUDPaint()
|
|
local hp = LocalPlayer():Health()
|
|
local lasthp = hp
|
|
local maxhp = LocalPlayer():GetMaxHealth()
|
|
|
|
if( Quantum.Client.Config.EnableHUD ) then
|
|
if !LocalPlayer():Alive() then return end
|
|
|
|
-- Health border
|
|
surface.SetDrawColor( 0, 0, 0, 200 )
|
|
surface.DrawRect( sw/2 - barW/2, sh*0.9, barW, barH )
|
|
|
|
-- Health
|
|
surface.SetDrawColor( 168, 62, 50, 255 )
|
|
surface.DrawRect( ( sw/2 - barW/2 ) + padding/2, (sh*0.9) + padding/2, math.Clamp( (barW - padding) * hp/maxhp, 0, barW - padding ), barH - padding )
|
|
|
|
-- Text
|
|
surface.SetFont( "q_HUD" )
|
|
surface.SetTextColor( 255, 255, 255, 255 )
|
|
local hptxt = tostring( 100 * (hp/maxhp) .. "%" )
|
|
local txtW, txtH = surface.GetTextSize( hptxt )
|
|
surface.SetTextPos( ( ( sw/2 - txtW/2 ) + padding/2 ), ( ( sh*0.9 - txtH/2 ) ) )
|
|
surface.DrawText( hptxt )
|
|
|
|
end
|
|
|
|
end
|
|
|
|
hook.Add( "RenderScreenspaceEffects", "Quantum_HUD_RenderLowHealth", function()
|
|
if( LocalPlayer():Health() / LocalPlayer():GetMaxHealth() <= 0.15 ) then
|
|
DrawMotionBlur( 0.4, 0.8, 0.1 )
|
|
DrawColorModify( {
|
|
[ "$pp_colour_addr" ] = 0,
|
|
[ "$pp_colour_addg" ] = 0,
|
|
[ "$pp_colour_addb" ] = 0,
|
|
[ "$pp_colour_brightness" ] = Lerp( LocalPlayer():Health() / LocalPlayer():GetMaxHealth(), -0.75, 0 ),
|
|
[ "$pp_colour_contrast" ] = Lerp( LocalPlayer():Health() / LocalPlayer():GetMaxHealth(), 0.6, 1 ),
|
|
[ "$pp_colour_colour" ] = Lerp( LocalPlayer():Health() / LocalPlayer():GetMaxHealth(), 0.2, 1 ),
|
|
[ "$pp_colour_mulr" ] = 0,
|
|
[ "$pp_colour_mulg" ] = 0,
|
|
[ "$pp_colour_mulb" ] = 0
|
|
} )
|
|
end
|
|
end)
|
|
|