49 lines
1.2 KiB
Lua
49 lines
1.2 KiB
Lua
AddCSLuaFile("cl_init.lua")
|
|
AddCSLuaFile("shared.lua")
|
|
|
|
include("shared.lua")
|
|
|
|
ENT.Model = Model("models/viper/mw/attachments/crossbow/attachment_vm_sn_crossbow_mag_stimbolt.mdl")
|
|
ENT.AoeEntity = nil
|
|
|
|
local BaseClass = baseclass.Get(ENT.Base)
|
|
|
|
local function isCowerSupportedForNPC(npc)
|
|
for _, a in pairs(npc:GetSequenceList()) do
|
|
if (npc:GetSequenceActivity(npc:LookupSequence(a)) == ACT_COWER) then
|
|
return true
|
|
end
|
|
end
|
|
|
|
return false
|
|
end
|
|
|
|
local function determineHealRelationship(ent, owner)
|
|
if (ent:IsNPC()) then
|
|
return ent:Disposition(owner) == D_LI
|
|
end
|
|
|
|
if (ent:IsPlayer()) then
|
|
return ent:Team() == owner:Team()
|
|
end
|
|
|
|
return false
|
|
end
|
|
|
|
function ENT:Impact(tr, phys, bHull)
|
|
BaseClass.Impact(self, tr, phys, bHull)
|
|
|
|
if (tr.HitSky) then
|
|
return
|
|
end
|
|
|
|
if (!IsValid(tr.Entity)) then
|
|
return
|
|
end
|
|
|
|
if (determineHealRelationship(tr.Entity, self:GetOwner())) then
|
|
tr.Entity:SetHealth(math.Clamp(tr.Entity:Health() + self.HealAmount, 0, tr.Entity:GetMaxHealth()))
|
|
tr.Entity:EmitSound("MW19_Crossbow.Heal")
|
|
ParticleEffect("arrow_heal", tr.HitPos, Angle(), nil, 0)
|
|
end
|
|
end |