48 lines
1.1 KiB
Lua
48 lines
1.1 KiB
Lua
|
|
function SWEP:Spread()
|
|
local spread = math.Clamp( math.TimeFraction( self.SpreadBurstStart, self.SpreadBurstEnd, self:GetBurstCount() ), 0, 1 )
|
|
spread = Lerp( spread, self.SpreadStart, self.SpreadEnd )
|
|
return spread
|
|
end
|
|
|
|
function SWEP:PrimaryAttack( mine )
|
|
if self:GetDelay() > CurTime() then
|
|
return false
|
|
end
|
|
if self:Clip1() == 0 then
|
|
self:EmitSound( "weapons/clipempty_rifle.wav", 90, 100, 1, CHAN_STATIC )
|
|
self:SetDelay( CurTime() + self.Delay )
|
|
return false
|
|
end
|
|
|
|
if self:GetBurstCount() >= self.MaxBurst then
|
|
return false
|
|
end
|
|
|
|
self:SetDelay( CurTime() + self.Delay )
|
|
self:SetBurstCount( self:GetBurstCount() + 1 )
|
|
self:SendWeaponAnim( ACT_VM_PRIMARYATTACK )
|
|
self:SetClip1( self:Clip1() - 1 )
|
|
|
|
self:EmitSound( self.Sound_Shoot, 90, 100, 1, CHAN_WEAPON )
|
|
|
|
local spread = math.rad( self:Spread() )
|
|
self:FireBullets( {
|
|
Attacker = self:GetOwner(),
|
|
Tracer = 1,
|
|
Damage = 25,
|
|
Force = 1,
|
|
Num = 1,
|
|
Dir = self:GetOwner():EyeAngles():Forward(),
|
|
Spread = Vector( spread, spread, 0 ),
|
|
Src = self:GetOwner():EyePos(),
|
|
Callback = function( attacker, tr, dmginfo )
|
|
end
|
|
})
|
|
|
|
return true
|
|
end
|
|
|
|
function SWEP:SecondaryAttack()
|
|
return true
|
|
end |