59 lines
1.6 KiB
Lua
59 lines
1.6 KiB
Lua
AddCSLuaFile("cl_init.lua")
|
|
AddCSLuaFile("shared.lua")
|
|
|
|
include("shared.lua")
|
|
|
|
ENT.ExplosionRadius = 256
|
|
|
|
function ENT:Initialize()
|
|
self:SetModel("models/dav0r/hoverball.mdl")
|
|
--[[self:PhysicsInit(SOLID_VPHYSICS)
|
|
self:GetPhysicsObject():EnableMotion(false)
|
|
self:SetCollisionGroup(COLLISION_GROUP_DEBRIS)]]
|
|
self:SetLifeTime(1.5)
|
|
self:AddFlags(FL_GRENADE)
|
|
self:AddFlags(FL_ONFIRE)
|
|
self.nextBeep = self:GetLifeTime()
|
|
end
|
|
|
|
function ENT:Think()
|
|
if (IsValid(self:GetParent()) && self:GetParent():Health() <= 0 && self:GetParent():GetMaxHealth() > 1) then
|
|
self:Explode()
|
|
self:Remove()
|
|
return
|
|
end
|
|
|
|
self:SetLifeTime(self:GetLifeTime() - FrameTime())
|
|
|
|
if (self:GetLifeTime() > 0.1 && self:GetLifeTime() <= self.nextBeep) then
|
|
sound.EmitHint(SOUND_DANGER, self:GetPos(), self.ExplosionRadius * 2, 1, nil) --make shit run away (nil owner so even rebels run)
|
|
self.nextBeep = self:GetLifeTime() * 0.75
|
|
BroadcastLua("Entity("..self:EntIndex().."):Beep()")
|
|
end
|
|
|
|
if (self:GetLifeTime() <= 0) then
|
|
self:Explode()
|
|
self:Remove()
|
|
end
|
|
|
|
self:NextThink(CurTime())
|
|
return true
|
|
end
|
|
|
|
function ENT:Explode()
|
|
local dmgInfo = DamageInfo()
|
|
dmgInfo:SetAttacker(self:GetOwner())
|
|
dmgInfo:SetDamage(150)
|
|
dmgInfo:SetDamageType(DMG_BLAST + DMG_AIRBOAT)
|
|
dmgInfo:SetInflictor(self)
|
|
util.BlastDamageInfo(dmgInfo, self:GetPos(), self.ExplosionRadius)
|
|
util.ScreenShake(self:GetPos(), 3500, 1111, 1, self.ExplosionRadius * 4)
|
|
|
|
if (IsValid(self.arrow)) then
|
|
self.arrow:Remove()
|
|
end
|
|
end
|
|
|
|
function ENT:OnRemove()
|
|
self:Explode()
|
|
end |