42 lines
1 KiB
Lua
42 lines
1 KiB
Lua
|
util.PrecacheModel("models/props_phx/construct/metal_dome360.mdl")
|
||
|
|
||
|
EFFECT.LifeTime = 2
|
||
|
|
||
|
function EFFECT:Init(data)
|
||
|
local pos = data:GetOrigin()
|
||
|
local angles = data:GetAngles()
|
||
|
|
||
|
self.Offset = data:GetStart()
|
||
|
self.Ent = data:GetEntity()
|
||
|
|
||
|
sound.Play("weapons/fx/rics/ric"..math.random(5)..".wav", pos, 68, math.Rand(120, 130))
|
||
|
|
||
|
self.Entity:SetModel("models/props_phx/construct/metal_dome360.mdl")
|
||
|
self.Entity:SetMoveType(MOVETYPE_NONE)
|
||
|
self.Entity:SetModelScale(0.5, 0)
|
||
|
self.Entity:SetAngles(angles)
|
||
|
|
||
|
self.DieTime = CurTime() + self.LifeTime
|
||
|
end
|
||
|
|
||
|
function EFFECT:Think()
|
||
|
return CurTime() < self.DieTime
|
||
|
end
|
||
|
|
||
|
local matRefract = Material("models/spawn_effect")
|
||
|
function EFFECT:Render()
|
||
|
local ent = self.Ent
|
||
|
if ent:IsValid() then
|
||
|
self:SetPos(ent:LocalToWorld(self.Offset))
|
||
|
end
|
||
|
|
||
|
render.UpdateRefractTexture()
|
||
|
matRefract:SetFloat("$refractamount", math.Clamp((self.DieTime - CurTime()) / self.LifeTime, 0, 1) ^ 2 * 0.05)
|
||
|
|
||
|
render.ModelMaterialOverride(matRefract)
|
||
|
|
||
|
self.Entity:DrawModel()
|
||
|
|
||
|
render.ModelMaterialOverride(0)
|
||
|
end
|