zombiesurvival-evolved/gamemodes/zombiesurvival/entities/effects/shadedeflect.lua

42 lines
1 KiB
Lua
Raw Normal View History

2014-10-02 08:49:54 +08:00
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