56 lines
1.3 KiB
Lua
56 lines
1.3 KiB
Lua
AddCSLuaFile()
|
|
|
|
ENT.Base = "tacrp_proj_base"
|
|
ENT.PrintName = "Nuke"
|
|
ENT.Spawnable = false
|
|
|
|
ENT.Model = "models/weapons/tacint/props_misc/briefcase_bomb-1.mdl"
|
|
|
|
ENT.Sticky = false
|
|
|
|
ENT.IsRocket = false // projectile has a booster and will not drop.
|
|
|
|
ENT.InstantFuse = false // projectile is armed immediately after firing.
|
|
ENT.RemoteFuse = true // allow this projectile to be triggered by remote detonator.
|
|
ENT.ImpactFuse = false // projectile explodes on impact.
|
|
|
|
ENT.ExplodeOnDamage = true // projectile explodes when it takes damage.
|
|
ENT.ExplodeUnderwater = false
|
|
|
|
ENT.Defusable = true
|
|
ENT.PickupAmmo = "ti_nuke"
|
|
|
|
ENT.Delay = 0.5
|
|
|
|
ENT.ExplodeSounds = {
|
|
"ambient/explosions/explode_6.wav"
|
|
}
|
|
|
|
function ENT:Detonate()
|
|
local attacker = self.Attacker or self:GetOwner() or self
|
|
|
|
local fx = EffectData()
|
|
fx:SetOrigin(self:GetPos())
|
|
|
|
if self:WaterLevel() > 0 then
|
|
self:Remove()
|
|
return
|
|
else
|
|
util.Effect("TacRP_nukeexplosion", fx)
|
|
end
|
|
|
|
util.BlastDamage(self, attacker, self:GetPos(), 1024, 100000)
|
|
|
|
local cloud = ents.Create( "TacRP_nuke_cloud" )
|
|
|
|
if !IsValid(cloud) then return end
|
|
|
|
cloud:SetPos(self:GetPos())
|
|
cloud:SetOwner(attacker)
|
|
cloud:Spawn()
|
|
|
|
self:EmitSound(table.Random(self.ExplodeSounds), 149)
|
|
|
|
self:Remove()
|
|
end
|