summaryrefslogtreecommitdiff
path: root/entities/weapons/rad_axe
diff options
context:
space:
mode:
Diffstat (limited to 'entities/weapons/rad_axe')
-rw-r--r--entities/weapons/rad_axe/shared.lua140
1 files changed, 70 insertions, 70 deletions
diff --git a/entities/weapons/rad_axe/shared.lua b/entities/weapons/rad_axe/shared.lua
index 2411957..c8848e7 100644
--- a/entities/weapons/rad_axe/shared.lua
+++ b/entities/weapons/rad_axe/shared.lua
@@ -1,19 +1,19 @@
if SERVER then
AddCSLuaFile("shared.lua")
-
+
end
if CLIENT then
SWEP.ViewModelFOV = 80
SWEP.ViewModelFlip = false
-
+
SWEP.PrintName = "Axe"
SWEP.IconLetter = "j"
SWEP.Slot = 1
SWEP.Slotpos = 0
-
+
end
SWEP.HoldType = "melee2"
@@ -42,7 +42,7 @@ SWEP.Primary.Automatic = true
function SWEP:GetViewModelPosition( pos, ang )
return self.Weapon:MoveViewModelTo( self.HoldPos, self.HoldAng, pos, ang, 1 )
-
+
end
function SWEP:SecondaryAttack()
@@ -52,62 +52,62 @@ end
function SWEP:PrimaryAttack()
if SERVER then
-
+
self.Owner:AddStamina( -4 )
-
+
end
-
- self.Owner:SetAnimation( PLAYER_ATTACK1 )
-
+
+ self.Owner:SetAnimation( PLAYER_ATTACK1 )
+
self.Weapon:SetNextPrimaryFire( CurTime() + self.Primary.Delay )
self.Weapon:MeleeTrace( self.Primary.Damage )
-
+
end
-function SWEP:Think()
+function SWEP:Think()
if self.Owner:GetVelocity():Length() > 0 then
-
+
if self.Owner:KeyDown( IN_SPEED ) then
-
+
self.LastRunFrame = CurTime() + 0.3
-
+
end
-
+
if self.Weapon:GetZoomMode() != 1 then
-
+
self.Weapon:UnZoom()
-
+
end
-
+
end
-
+
if self.MoveTime and self.MoveTime < CurTime() and SERVER then
-
+
self.MoveTime = nil
self.Weapon:SetZoomMode( self.Weapon:GetZoomMode() + 1 )
self.Owner:DrawViewModel( false )
-
+
end
end
function SWEP:MeleeTrace( dmg )
-
+
self.Weapon:SendWeaponAnim( ACT_VM_MISSCENTER )
-
+
if CLIENT then return end
-
+
local pos = self.Owner:GetShootPos()
local aim = self.Owner:GetAimVector() * 64
-
+
local line = {}
line.start = pos
line.endpos = pos + aim
line.filter = self.Owner
-
+
local linetr = util.TraceLine( line )
-
+
local tr = {}
tr.start = pos + self.Owner:GetAimVector() * -5
tr.endpos = pos + aim
@@ -119,95 +119,95 @@ function SWEP:MeleeTrace( dmg )
local trace = util.TraceHull( tr )
local ent = trace.Entity
local ent2 = linetr.Entity
-
+
if not IsValid( ent ) and IsValid( ent2 ) then
-
+
ent = ent2
-
+
end
- if not IsValid( ent ) then
-
+ if not IsValid( ent ) then
+
self.Owner:EmitSound( self.Primary.Sound, 100, math.random(60,80) )
- return
-
+ return
+
elseif not ent:IsWorld() then
-
+
self.Weapon:SendWeaponAnim( ACT_VM_HITCENTER )
-
- if ent:IsPlayer() then
-
+
+ if ent:IsPlayer() then
+
local snd = table.Random( GAMEMODE.AxeHit )
ent:EmitSound( snd, 100, math.random(90,110) )
-
+
if ent:Team() != self.Owner:Team() then
-
+
ent:TakeDamage( dmg, self.Owner, self.Weapon )
-
+
self.Owner:DrawBlood()
-
+
local ed = EffectData()
ed:SetOrigin( trace.HitPos )
util.Effect( "BloodImpact", ed, true, true )
-
+
end
-
+
elseif string.find( ent:GetClass(), "npc" ) then
-
+
ent:SetHeadshotter( self.Owner, true )
ent:TakeDamage( dmg, self.Owner, self.Weapon )
-
+
local snd = table.Random( GAMEMODE.AxeHit )
ent:EmitSound( snd, 100, math.random(90,110) )
-
+
self.Owner:DrawBlood()
-
+
local ed = EffectData()
ed:SetOrigin( trace.HitPos )
util.Effect( "BloodImpact", ed, true, true )
-
- elseif !ent:IsPlayer() then
-
+
+ elseif !ent:IsPlayer() then
+
if string.find( ent:GetClass(), "breakable" ) then
-
+
ent:TakeDamage( 50, self.Owner, self.Weapon )
-
+
if ent:GetClass() == "func_breakable_surf" then
-
+
ent:Fire( "shatter", "1 1 1", 0 )
-
+
end
-
+
end
-
+
ent:EmitSound( self.Primary.Hit, 100, math.random(90,110) )
-
+
local phys = ent:GetPhysicsObject()
-
+
if IsValid( phys ) then
-
- if ent.IsWooden then
-
+
+ if ent.IsWooden or (ent:GetMaterialType() == MAT_WOOD) then
+
ent:Fire( "break", 0, 0 )
-
+
else
-
+
ent:SetPhysicsAttacker( self.Owner )
ent:TakeDamage( 10, self.Owner, self.Weapon )
-
+
phys:Wake()
phys:ApplyForceCenter( self.Owner:GetAimVector() * phys:GetMass() * 200 )
-
+
end
-
+
end
-
+
end
-
+
end
end
function SWEP:DrawHUD()
-
+
end