Frag grenade W.I.P.
This commit is contained in:
parent
5eb5fe978e
commit
f6d084263d
|
@ -2,14 +2,50 @@ AddCSLuaFile()
|
|||
|
||||
ENT.Type = "anim"
|
||||
|
||||
ENT.Fuse = 0
|
||||
|
||||
local size = Vector( 4, 4, 4 )
|
||||
local sizem = -size
|
||||
|
||||
function ENT:Initialize()
|
||||
self:SetModel( "models/weapons/w_eq_fraggrenade_thrown.mdl" )
|
||||
if SERVER then
|
||||
self:PhysicsInitBox( sizem, size, SOLID_VPHYSICS )
|
||||
self:SetMoveType( MOVETYPE_VPHYSICS )
|
||||
self:SetCollisionGroup( COLLISION_GROUP_PROJECTILE )
|
||||
local phys = self:GetPhysicsObject()
|
||||
if IsValid(phys) then
|
||||
phys:SetMaterial("Brick")
|
||||
phys:Wake()
|
||||
end
|
||||
else
|
||||
self:SetModelScale( 2 )
|
||||
end
|
||||
return
|
||||
end
|
||||
|
||||
function ENT:Think()
|
||||
if SERVER and self.Fuse <= CurTime() then
|
||||
self:Explode()
|
||||
self:Remove()
|
||||
end
|
||||
return
|
||||
end
|
||||
|
||||
local explosionflags = 0x2 + 0x4 + 0x80
|
||||
function ENT:Explode()
|
||||
local effectdata = EffectData()
|
||||
effectdata:SetOrigin( self:GetPos() )
|
||||
effectdata:SetFlags( explosionflags )
|
||||
util.Effect( "Explosion", effectdata )
|
||||
|
||||
local dmg = DamageInfo()
|
||||
dmg:SetDamage( 125 )
|
||||
dmg:SetAttacker( self:GetOwner() )
|
||||
util.BlastDamageInfo( dmg, self:GetPos(), 140 )
|
||||
return
|
||||
end
|
||||
|
||||
function ENT:PhysicsCollide( data, phys )
|
||||
if ( data.Speed > 100 ) then phys:SetVelocity( data.OurNewVelocity/2 ) end
|
||||
end
|
|
@ -2,11 +2,3 @@ AddCSLuaFile()
|
|||
|
||||
ENT.Type = "anim"
|
||||
ENT.Base = "bgrenade"
|
||||
|
||||
function ENT:Think()
|
||||
return
|
||||
end
|
||||
|
||||
function ENT:Explode()
|
||||
return
|
||||
end
|
|
@ -637,6 +637,54 @@ WEAPONS["spas12"] = {
|
|||
Features = "firearm",
|
||||
}
|
||||
|
||||
WEAPONS["cqb70"] = {
|
||||
Name = "CQB-70",
|
||||
Description = "meow",
|
||||
Type = "shotgun",
|
||||
|
||||
WModel = "models/weapons/w_shot_cs3.mdl",
|
||||
HoldType = "rpg",
|
||||
GestureFire = { ACT_HL2MP_GESTURE_RANGE_ATTACK_CROSSBOW, 0.5 },
|
||||
|
||||
Sound_Fire = "AA12.Fire",
|
||||
Sound_DryFire = "Common.Dryfire.Rifle",
|
||||
Sound_MagOut = "AA12.MagOut",
|
||||
Sound_MagIn = "AA12.MagIn",
|
||||
|
||||
Delay = (60/120),
|
||||
Firemodes = FIREMODE_SEMI,
|
||||
Ammo = 4,
|
||||
Damage = 10,
|
||||
Pellets = 8,
|
||||
Spread = 150/60,
|
||||
|
||||
Features = "firearm",
|
||||
}
|
||||
|
||||
WEAPONS["m12ak"] = {
|
||||
Name = "M12AK",
|
||||
Description = "meow",
|
||||
Type = "shotgun",
|
||||
|
||||
WModel = "models/weapons/w_shot_saiga.mdl",
|
||||
HoldType = "rpg",
|
||||
GestureFire = { ACT_HL2MP_GESTURE_RANGE_ATTACK_CROSSBOW, 0.5 },
|
||||
|
||||
Sound_Fire = "AA12.Fire",
|
||||
Sound_DryFire = "Common.Dryfire.Rifle",
|
||||
Sound_MagOut = "AA12.MagOut",
|
||||
Sound_MagIn = "AA12.MagIn",
|
||||
|
||||
Delay = (60/160),
|
||||
Firemodes = FIREMODE_SEMI,
|
||||
Ammo = 5,
|
||||
Damage = 10,
|
||||
Pellets = 8,
|
||||
Spread = 150/60,
|
||||
|
||||
Features = "firearm",
|
||||
}
|
||||
|
||||
WEAPONS["aa12"] = {
|
||||
Name = "AA-12",
|
||||
Description = "meow",
|
||||
|
@ -784,8 +832,31 @@ WEAPONS["qbblsw"] = {
|
|||
-- Grenades
|
||||
-- Nothing here is guaranteed.
|
||||
|
||||
local function GrenadeFire()
|
||||
print("yay")
|
||||
local function GrenadeFire( self )
|
||||
local p = self:GetOwner()
|
||||
if self:GetDelay1() > CurTime() then
|
||||
return true
|
||||
end
|
||||
self:SetDelay1( CurTime() + 0.1 )
|
||||
|
||||
self:TPFire()
|
||||
|
||||
-- PROTO: See to getting this done better. Maybe it's spawned while priming the nade for low CL-SV/phys delay?
|
||||
if SERVER then
|
||||
local GENT = ents.Create( "bgrenade_frag" )
|
||||
GENT:SetOwner( p )
|
||||
GENT:SetPos( p:EyePos() + (p:EyeAngles():Forward()*16) )
|
||||
GENT:SetAngles( p:EyeAngles() + Angle( 0, 0, -90 ) )
|
||||
GENT.Fuse = CurTime() + 4
|
||||
GENT:Spawn()
|
||||
|
||||
local velocity = p:EyeAngles():Forward() * 1500
|
||||
velocity:Mul( Lerp( math.TimeFraction( 90, 0, p:EyeAngles().p ), 0, 1 ) )
|
||||
-- velocity:Add( p:EyeAngles():Up() * 500 * Lerp( math.TimeFraction( 0, -90, p:EyeAngles().p ), 0, 1 ) )
|
||||
|
||||
GENT:GetPhysicsObject():SetVelocity( velocity )
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
|
@ -802,6 +873,8 @@ WEAPONS["g_frag"] = {
|
|||
Fire = GrenadeFire,
|
||||
|
||||
WModel = "models/weapons/w_eq_flashbang.mdl",
|
||||
HoldType = "grenade",
|
||||
GestureFire = { ACT_HL2MP_GESTURE_RANGE_ATTACK_GRENADE, 0 },
|
||||
|
||||
Features = "grenade",
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue