aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gamemode/client/hud/cl_healthbar.lua170
1 files changed, 0 insertions, 170 deletions
diff --git a/gamemode/client/hud/cl_healthbar.lua b/gamemode/client/hud/cl_healthbar.lua
deleted file mode 100644
index 2705a42..0000000
--- a/gamemode/client/hud/cl_healthbar.lua
+++ /dev/null
@@ -1,170 +0,0 @@
-hook.Add("HUDShouldDraw", "HideHUD", function(name)
- if name == "CHudHealth" then return false end
-end)
-
---[[
---A function that rotates a point around another point
-local function rotatepoint(x, y, cx, cy, rot)
- rot = math.rad(rot)
- local cs, sn = math.cos(rot), math.sin(rot)
- local px = x * cs - y * sn
- local py = x * sn + y * cs
-
- return px, py
-end
-]]
-
---Add a function to the draw library to draw elipses for blood
-local segments = 20
-local fade = 0.5
-
-function draw.DrawElipse(x, y, radius, elong, rotation)
- rotation = math.rad(rotation)
- local cir = {}
-
- table.insert(cir, {
- x = x,
- y = y,
- u = fade,
- v = fade
- })
-
- for i = 0, segments do
- local a = math.rad((i / segments) * -360)
- local xu, yu = math.sin(a), math.cos(a)
- local xpos = xu * radius * elong
- local ypos = yu * radius
- local cs, sn = math.cos(rotation), math.sin(rotation)
- xpos, ypos = xpos * cs - ypos * sn, xpos * sn + ypos * cs
-
- table.insert(cir, {
- x = x + xpos,
- y = y + ypos,
- u = 1,
- v = 1
- })
- end
-
- surface.DrawPoly(cir)
-end
-
-local width, height = ScrW(), ScrH()
-local padding = height / 32
-local barheight = height / 16
-local bubbles = {}
-local blobs = {}
-local bubbleradius = height / 64
-local delpoint = height
-
-hook.Add("Tick", "Hudpaintbloodtick", function()
- for k, v in pairs(blobs) do
- if v.y > delpoint then
- blobs[k] = nil
- else
- blobs[k] = {
- ["x"] = v.x + v.xv,
- ["y"] = v.y + v.yv,
- ["xv"] = v.xv,
- ["yv"] = v.yv + 1
- }
- end
- end
-
- for k, v in pairs(bubbles) do
- if v.y < height - padding - barheight - bubbleradius then
- bubbles[k] = nil
- else
- local subheight = v.y - (1.5 + math.sin((v.y / 4) + (v.x * 10))) / 5
- bubbles[k].y = subheight
- end
- end
-end)
-
-local lasthealth
-local obarlength = width / 4
-local barlength = obarlength
-local xs, ys = padding, height - padding - barheight
-local bubblespawnrate, bubblespawnchance = 1, 0.7
-
-timer.Create("Healthbar_bubble_timer", bubblespawnrate, 0, function()
- if math.random() < bubblespawnchance then
- local newbubble = {
- ["x"] = math.random(xs + bubbleradius, barlength - bubbleradius),
- ["y"] = height - padding + bubbleradius
- }
-
- table.insert(bubbles, newbubble)
- end
-end)
-
-hook.Add("HUDPaint", "HUD_DrawHealth", function()
- --Spawn a bunch of blobs if our health has changed
- local health = LocalPlayer():Health()
-
- if lasthealth == nil then
- lasthealth = health
- end
-
- if health ~= lasthealth then
- local difference = lasthealth - health
- barlength = obarlength * (health / 100)
-
- for i = 0, difference * 3 do
- local rtime = math.random()
-
- timer.Simple(rtime, function()
- local yvel = -20 + math.random(10)
- local xvel = math.random() * 5
- local xpos = padding + xs + barlength - difference - 5
- local ypos = ys + (math.random() * barheight)
-
- table.insert(blobs, {
- x = xpos,
- y = ypos,
- xv = xvel,
- yv = yvel
- })
- end)
- end
-
- lasthealth = health
- end
-
- --Draw the current health thing
- --Background
- surface.SetDrawColor(100, 100, 100, 100)
- surface.DrawRect(xs, ys, obarlength, barheight)
- --Foreground
- surface.SetDrawColor(150, 0, 0, 255)
- surface.DrawRect(xs, ys, barlength, barheight)
- --Heighlighting/shadows
- surface.SetTexture( surface.GetTextureID("gui/gradient.vtf") )
- surface.SetDrawColor( 0, 0, 0, 255 )
- surface.DrawTexturedRectRotated( xs + (barlength/2), ys + (barheight/4) * 3, barheight/2, barlength,90)
- surface.SetDrawColor( 255, 255, 255, 50 )
- surface.DrawTexturedRectRotated( xs + (barlength/2), ys + (barheight/8), barheight/4, barlength,270)
-
- --Draw bubbles
- render.SetScissorRect(xs, ys, xs + barlength, ys + barheight, true) -- Enable the rect
- surface.SetDrawColor(250, 150, 150, 10)
-
- for k, v in pairs(bubbles) do
- if k > 50 then break end
- surface.DrawCircle(v.x, v.y, bubbleradius, 250, 150, 150, 30)
- draw.DrawElipse(v.x, v.y, bubbleradius, 1, 0)
- end
-
- render.SetScissorRect(0, 0, 0, 0, false) -- Disable after you are done
- --Draw the animation for blobs
- surface.SetDrawColor(150, 0, 0, 255)
-
- for k, v in pairs(blobs) do
- --Elongation is based on velocity
- local elong = (v.yv ^ 2 + v.xv ^ 2) ^ 0.5
- elong = elong / 5
- elong = math.Clamp(elong, 1, 3)
- --Rotation is also based on velcotiy
- local rot = math.deg(math.atan(v.yv / v.xv))
- draw.DrawElipse(v.x, v.y, 10 / elong, elong, rot)
- end
-end)