mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 05:43:46 +03:00
75 lines
1.9 KiB
Lua
75 lines
1.9 KiB
Lua
--[[
|
|
| This file was obtained through the combined efforts
|
|
| of Madbluntz & Plymouth Antiquarian Society.
|
|
|
|
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
|
| Maloy, DrPepper10 @ RIP, Atle!
|
|
|
|
|
| Visit for more: https://plymouth.thetwilightzone.ru/
|
|
--]]
|
|
|
|
|
|
local model_orb = Model("models/Combine_Helicopter/helicopter_bomb01.mdl")
|
|
|
|
function EFFECT:Init(data)
|
|
self:SetPos(data:GetOrigin())
|
|
|
|
self.Radius = data:GetRadius()
|
|
|
|
local rh = self.Radius
|
|
self:SetRenderBounds(Vector(-rh, -rh, -rh), Vector(rh, rh, rh))
|
|
|
|
self.EndTime = CurTime() + data:GetScale()
|
|
self.FadeTime = data:GetMagnitude()
|
|
|
|
self.FadeIn = CurTime() + self.FadeTime
|
|
self.FadeOut = self.EndTime - self.FadeTime
|
|
|
|
self.Alpha = 0
|
|
|
|
self.Orb = ClientsideModel(model_orb, RENDERGROUP_TRANSLUCENT)
|
|
self.Orb:SetPos(data:GetOrigin())
|
|
self.Orb:AddEffects(EF_NODRAW)
|
|
|
|
local r = 28 / 2 -- hardcoded because stuff like :BoundingRadius won't work here
|
|
|
|
self.EndScale = self.Radius / r
|
|
end
|
|
|
|
function EFFECT:Think()
|
|
if self.EndTime < CurTime() then
|
|
SafeRemoveEntity(self.Orb)
|
|
return false
|
|
end
|
|
|
|
if self.FadeIn > CurTime() then
|
|
self.Alpha = 1 - ((self.FadeIn - CurTime()) / self.FadeTime)
|
|
elseif self.FadeOut < CurTime() then
|
|
self.Alpha = 1 - ((CurTime() - self.FadeOut) / self.FadeTime)
|
|
end
|
|
|
|
self.Orb:SetModelScale(self.EndScale * self.Alpha, 0)
|
|
|
|
local ang = self.Orb:GetAngles()
|
|
ang.y = ang.y + 500 * FrameTime()
|
|
self.Orb:SetAngles(ang)
|
|
|
|
return IsValid(self.Orb)
|
|
end
|
|
|
|
local mat_orb = Material("models/effects/splodearc_sheet")
|
|
function EFFECT:Render()
|
|
render.MaterialOverride(mat_orb)
|
|
render.SuppressEngineLighting( true )
|
|
render.SetColorModulation(0, 0, 1)
|
|
render.SetBlend(0.8 * self.Alpha)
|
|
|
|
self.Orb:DrawModel()
|
|
|
|
render.SetBlend(1)
|
|
render.SetColorModulation(1, 1, 1)
|
|
render.SuppressEngineLighting(false)
|
|
render.MaterialOverride()
|
|
end
|
|
|