53 lines
1.6 KiB
Lua
53 lines
1.6 KiB
Lua
AddCSLuaFile()
|
|
|
|
ENT.Base = "tacrp_proj_base"
|
|
ENT.PrintName = "40mm Beanbag"
|
|
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.SmokeTrail = false
|
|
ENT.BounceSounds = {
|
|
"TacRP/weapons/grenade/flashbang_bounce-1.wav",
|
|
"TacRP/weapons/grenade/flashbang_bounce-2.wav",
|
|
"TacRP/weapons/grenade/flashbang_bounce-3.wav",
|
|
}
|
|
|
|
|
|
function ENT:Impact(data, collider)
|
|
self:EmitSound("weapons/rpg/shotdown.wav", 90, 115)
|
|
|
|
if IsValid(data.HitEntity) then
|
|
local attacker = self.Attacker or self:GetOwner() or self
|
|
local dmg = DamageInfo()
|
|
dmg:SetAttacker(attacker)
|
|
dmg:SetInflictor(self)
|
|
dmg:SetDamage(Lerp((data.OurOldVelocity:Length() - 1000) / 4000, 0, 100))
|
|
dmg:SetDamageType(DMG_CRUSH)
|
|
dmg:SetDamageForce(data.OurOldVelocity:GetNormalized() * 5000)
|
|
dmg:SetDamagePosition(data.HitPos)
|
|
data.HitEntity:TakeDamageInfo(dmg)
|
|
end
|
|
|
|
local ang = data.OurOldVelocity:Angle()
|
|
local fx = EffectData()
|
|
fx:SetOrigin(data.HitPos)
|
|
fx:SetNormal(-ang:Forward())
|
|
fx:SetAngles(-ang)
|
|
util.Effect("ManhackSparks", fx)
|
|
|
|
SafeRemoveEntityDelayed(self, 3)
|
|
return true
|
|
end
|