Files
call-of-duty-tdm/lua/entities/mg_aoe_arrow_smoke/shared.lua
2026-03-30 10:39:52 +03:00

57 lines
1.5 KiB
Lua

ENT.Base = "base_entity"
ENT.Type = "anim"
ENT.SmokeRadius = 256
ENT.LifeTime = 11
ENT.CollisionGroup = COLLISION_GROUP_DEBRIS_TRIGGER
function ENT:TestCollision(startpos, delta, isbox, extents, mask)
--[[if (bit.band(mask, MASK_SHOT) == MASK_SHOT && SERVER) then
--workaround for strider
local tr = util.TraceLine({
start = self:GetPos(),
endpos = startpos,
filter = self,
mask = MASK_SHOT
})
if (IsValid(tr.Entity)) then
tr.Entity:Fire("SetCannonTarget", "") --strider
tr.Entity:Fire("SetMinigunTarget", "") --strider
--can't do shit to helicopter _shrug_
end
end]] --causes an infinite loop when shooting more arrows into the smoke
return bit.band(mask, MASK_BLOCKLOS) == MASK_BLOCKLOS
end
game.AddParticles("particles/mw19_attachments.pcf")
PrecacheParticleSystem("arrow_smoke")
PrecacheParticleSystem("arrow_smoke_explode")
sound.Add({
name = "MW19_Crossbow.SmokeOn",
channel = CHAN_BODY,
volume = 0.25,
level = 75,
pitch = {75, 85},
sound = {"viper/shared/smoke_grenade_smoke_loop.ogg"}
})
sound.Add({
name = "MW19_Crossbow.SmokeOff",
channel = CHAN_BODY,
volume = 0.25,
level = 75,
pitch = {75, 85},
sound = {"viper/shared/smoke_grenade_smoke_loop_end.ogg"}
})
sound.Add({
name = "MW19_Crossbow.SmokeExplode",
channel = CHAN_ITEM,
volume = 1,
level = 100,
pitch = {95, 105},
sound = {"viper/shared/smoke_expl_body_01.ogg"}
})