70 lines
1.5 KiB
Lua
70 lines
1.5 KiB
Lua
|
AddCSLuaFile()
|
||
|
|
||
|
SWEP.Base = "weapon_zs_zombie"
|
||
|
|
||
|
if CLIENT then
|
||
|
SWEP.PrintName = "Puke Pus"
|
||
|
end
|
||
|
|
||
|
SWEP.Primary.Delay = 3.5
|
||
|
|
||
|
SWEP.ViewModel = "models/weapons/v_crowbar.mdl"
|
||
|
SWEP.WorldModel = "models/weapons/w_crowbar.mdl"
|
||
|
|
||
|
SWEP.NextPuke = 0
|
||
|
SWEP.PukeLeft = 0
|
||
|
|
||
|
function SWEP:Initialize()
|
||
|
self:HideViewAndWorldModel()
|
||
|
|
||
|
self.BaseClass.Initialize(self)
|
||
|
end
|
||
|
|
||
|
function SWEP:PrimaryAttack()
|
||
|
if CurTime() < self:GetNextPrimaryFire() then return end
|
||
|
self:SetNextPrimaryFire(CurTime() + self.Primary.Delay)
|
||
|
|
||
|
self.PukeLeft = 40
|
||
|
|
||
|
self.Owner:EmitSound("npc/barnacle/barnacle_die2.wav")
|
||
|
self.Owner:EmitSound("npc/barnacle/barnacle_digesting1.wav")
|
||
|
self.Owner:EmitSound("npc/barnacle/barnacle_digesting2.wav")
|
||
|
end
|
||
|
|
||
|
function SWEP:SecondaryAttack()
|
||
|
end
|
||
|
|
||
|
function SWEP:Reload()
|
||
|
end
|
||
|
|
||
|
if not SERVER then return end
|
||
|
|
||
|
function SWEP:Think()
|
||
|
local pl = self.Owner
|
||
|
|
||
|
if self.PukeLeft > 0 and CurTime() >= self.NextPuke then
|
||
|
self.PukeLeft = self.PukeLeft - 1
|
||
|
self.NextEmit = CurTime() + 0.1
|
||
|
|
||
|
local ent = ents.Create("projectile_poisonpuke")
|
||
|
if ent:IsValid() then
|
||
|
ent:SetPos(pl:EyePos())
|
||
|
ent:SetOwner(pl)
|
||
|
ent:Spawn()
|
||
|
|
||
|
ent:SetTeamID(TEAM_UNDEAD)
|
||
|
|
||
|
local phys = ent:GetPhysicsObject()
|
||
|
if phys:IsValid() then
|
||
|
local ang = pl:EyeAngles()
|
||
|
ang:RotateAroundAxis(ang:Forward(), math.Rand(-30, 30))
|
||
|
ang:RotateAroundAxis(ang:Up(), math.Rand(-30, 30))
|
||
|
phys:SetVelocityInstantaneous(ang:Forward() * math.Rand(475, 750))
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
self:NextThink(CurTime())
|
||
|
return true
|
||
|
end
|