55 lines
1.5 KiB
Lua
55 lines
1.5 KiB
Lua
AddCSLuaFile()
|
|
|
|
ENT.Base = "tacrp_proj_base"
|
|
ENT.PrintName = "40mm HEAT"
|
|
ENT.Spawnable = false
|
|
|
|
ENT.Model = "models/weapons/tacint/grenade_40mm.mdl"
|
|
|
|
ENT.IsRocket = false // projectile has a booster and will not drop.
|
|
|
|
ENT.InstantFuse = false // projectile is armed immediately after firing.
|
|
ENT.RemoteFuse = false // allow this projectile to be triggered by remote detonator.
|
|
ENT.ImpactFuse = true // projectile explodes on impact.
|
|
|
|
ENT.ExplodeOnDamage = false // projectile explodes when it takes damage.
|
|
ENT.ExplodeUnderwater = true
|
|
|
|
ENT.Delay = 0
|
|
|
|
ENT.ExplodeSounds = {
|
|
"^TacRP/weapons/grenade/frag_explode-1.wav",
|
|
"^TacRP/weapons/grenade/frag_explode-2.wav",
|
|
"^TacRP/weapons/grenade/frag_explode-3.wav",
|
|
}
|
|
|
|
ENT.AudioLoop = "TacRP/weapons/rpg7/rocket_flight-1.wav"
|
|
|
|
ENT.SmokeTrail = true
|
|
|
|
function ENT:Detonate()
|
|
if self:WaterLevel() > 0 then self:Remove() return end
|
|
local attacker = self.Attacker or self:GetOwner() or self
|
|
|
|
util.BlastDamage(self, attacker, self:GetPos(), 150, 25 * TacRP.ConVars["mult_damage_explosive"]:GetFloat())
|
|
|
|
self:EmitSound(table.Random(self.ExplodeSounds), 75)
|
|
|
|
local cloud = ents.Create( "TacRP_fire_cloud" )
|
|
|
|
if !IsValid(cloud) then return end
|
|
|
|
local ang = self:GetAngles()
|
|
|
|
ang:RotateAroundAxis(ang:Right(), 90)
|
|
|
|
cloud:SetPos(self:GetPos())
|
|
cloud:SetAngles(ang)
|
|
cloud:SetOwner(attacker)
|
|
cloud:Spawn()
|
|
|
|
cloud:SetMoveType(MOVETYPE_NONE)
|
|
|
|
self:Remove()
|
|
end
|