summaryrefslogtreecommitdiff
path: root/gamemode/cl_hudstains.lua
diff options
context:
space:
mode:
authorAlexander Pickering <alexandermpickering@gmail.com>2016-05-30 14:42:09 -0400
committerAlexander Pickering <alexandermpickering@gmail.com>2016-05-30 14:42:09 -0400
commit2736f498f30220b858fc6fac23e7ddc4a597df6d (patch)
tree374ceadedb654b00e09dac321620a8320830f734 /gamemode/cl_hudstains.lua
downloadredead-2736f498f30220b858fc6fac23e7ddc4a597df6d.tar.gz
redead-2736f498f30220b858fc6fac23e7ddc4a597df6d.tar.bz2
redead-2736f498f30220b858fc6fac23e7ddc4a597df6d.zip
Inital commit
Diffstat (limited to 'gamemode/cl_hudstains.lua')
-rw-r--r--gamemode/cl_hudstains.lua81
1 files changed, 81 insertions, 0 deletions
diff --git a/gamemode/cl_hudstains.lua b/gamemode/cl_hudstains.lua
new file mode 100644
index 0000000..9b2b637
--- /dev/null
+++ b/gamemode/cl_hudstains.lua
@@ -0,0 +1,81 @@
+
+local BloodTable = {}
+
+local function DrawBlood()
+
+ if #BloodTable < 1 then return end
+
+ for i=1, #BloodTable do
+
+ if BloodTable[i] then
+
+ local scale = math.Clamp( ( BloodTable[i].DieTime - CurTime() ) / BloodTable[i].Die, 0, 1 )
+
+ if scale == 0 then
+
+ BloodTable[i].Remove = true
+
+ else
+
+ local alpha = math.floor( BloodTable[i].Alpha * scale )
+
+ surface.SetTexture( BloodTable[i].Mat )
+ //surface.SetDrawColor( 250, 10, 10, alpha )
+ surface.SetDrawColor( 175, 10, 10, alpha )
+ surface.DrawTexturedRect( BloodTable[i].X, BloodTable[i].Y, BloodTable[i].Size, BloodTable[i].Size )//, BloodTable[i].Rot )
+
+ end
+
+ end
+
+ end
+
+ for k,v in pairs( BloodTable ) do
+
+ if v.Remove then
+
+ table.remove( BloodTable, k )
+
+ break
+
+ end
+
+ end
+
+end
+hook.Add( "HUDPaint", "BloodPaint", DrawBlood )
+
+StainMats = { "nuke/blood/Blood1",
+"nuke/blood/Blood2",
+"nuke/blood/Blood3",
+"nuke/blood/Blood4",
+"nuke/blood/Blood5",
+"nuke/blood/Blood6",
+"nuke/blood/Blood7" }
+
+function AddStain( msg )
+
+ local num = 1
+
+ if msg then
+
+ num = msg:ReadShort()
+
+ end
+
+ for i=1, num do
+
+ local count = #BloodTable + 1
+
+ local size = math.random( 256, 1024 )
+ local x = math.random( size * -0.5, ScrW() - ( size * 0.5 ) )
+ local y = math.random( size * -0.5, ScrH() - ( size * 0.5 ) )
+ local rand = math.Rand( 3.5, 6.5 )
+
+ BloodTable[count] = { Size = size, X = x, Y = y, Mat = surface.GetTextureID( table.Random( StainMats ) ), Die = rand, DieTime = CurTime() + rand, Alpha = math.random( 150, 250 ) }
+
+ end
+
+end
+
+usermessage.Hook( "BloodStain", AddStain )