mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 21:53:46 +03:00
Upload
This commit is contained in:
58
lua/entities/arccw_ammo_smg1_grenade_large.lua
Normal file
58
lua/entities/arccw_ammo_smg1_grenade_large.lua
Normal file
@@ -0,0 +1,58 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
AddCSLuaFile()
|
||||
|
||||
ENT.Base = "arccw_ammo"
|
||||
|
||||
ENT.PrintName = "Rifle Grenade Box"
|
||||
ENT.Category = "ArcCW - Ammo"
|
||||
|
||||
ENT.Spawnable = true
|
||||
ENT.Model = "models/items/arccw/riflegrenade_ammo.mdl"
|
||||
ENT.Health = 70
|
||||
|
||||
ENT.AmmoType = "smg1_grenade"
|
||||
ENT.AmmoCount = 5
|
||||
|
||||
ENT.DetonationDamage = 100 -- Per-round damage
|
||||
ENT.DetonationRadius = 300
|
||||
|
||||
function ENT:DetonateRound(attacker)
|
||||
local nade = ents.Create("arccw_gl_ammodet")
|
||||
nade:SetPos(self:GetPos())
|
||||
local v = self:GetUp():Angle() + AngleRand(-60, 60)
|
||||
nade:SetAngles(v)
|
||||
nade:Spawn()
|
||||
nade:GetPhysicsObject():AddVelocity(self:GetVelocity() + self:GetForward() * math.random(2000, 3000))
|
||||
nade:SetOwner(attacker or self.Burner)
|
||||
|
||||
self.AmmoCount = self.AmmoCount - 1
|
||||
|
||||
self:GetPhysicsObject():AddVelocity(VectorRand() * math.random(5, 10) * self:GetPhysicsObject():GetMass())
|
||||
self:GetPhysicsObject():AddAngleVelocity(VectorRand() * math.random(60, 300))
|
||||
|
||||
self:EmitSound("weapons/ar2/ar2_altfire.wav", 80, 150)
|
||||
end
|
||||
|
||||
function ENT:Detonate(wet, attacker)
|
||||
if wet then
|
||||
for i = 1, math.random(1, 3) do
|
||||
self:DetonateRound(attacker)
|
||||
end
|
||||
end
|
||||
|
||||
local e = EffectData()
|
||||
e:SetOrigin(self:GetPos())
|
||||
util.Effect("Explosion", e)
|
||||
|
||||
util.BlastDamage(self, attacker, self:GetPos(), self.DetonationRadius, self.DetonationDamage * (wet and 1 or 2))
|
||||
self:Remove()
|
||||
end
|
||||
Reference in New Issue
Block a user