zombiesurvival-evolved/gamemodes/zombiesurvival/entities/weapons/weapon_zs_oberon.lua

114 lines
4.4 KiB
Lua
Raw Normal View History

AddCSLuaFile()
SWEP.PrintName = "'Oberon' Pulse Shotgun"
SWEP.Description = "Fires a spread of pulse shots that slow targets."
if CLIENT then
SWEP.Slot = 3
SWEP.SlotPos = 0
SWEP.ViewModelFlip = false
SWEP.ViewModelFOV = 60
SWEP.HUD3DBone = "ValveBiped.Gun"
SWEP.HUD3DPos = Vector(2.12, -1, -8)
SWEP.HUD3DScale = 0.025
SWEP.ShowViewModel = true
SWEP.VElements = {
["base+++"] = { type = "Model", model = "models/Items/boxflares.mdl", bone = "ValveBiped.Gun", rel = "", pos = Vector(-1.283, -2.158, 1.508), angle = Angle(90, -90, -90), size = Vector(0.437, 0.226, 0.446), color = Color(255, 255, 255, 255), surpresslightning = true, material = "models/error/new light1", skin = 0, bodygroup = {} },
["base+"] = { type = "Model", model = "models/props_combine/combine_mortar01a.mdl", bone = "ValveBiped.Pump", rel = "", pos = Vector(-1.313, 1.697, -20.396), angle = Angle(0.476, 90, 0), size = Vector(0.172, 0.179, 0.256), color = Color(255, 147, 0, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {} },
["base++"] = { type = "Model", model = "models/props_combine/combinetrain01a.mdl", bone = "ValveBiped.Gun", rel = "", pos = Vector(0.197, 3.431, 3.428), angle = Angle(-90, 0, -90.676), size = Vector(0.071, 0.019, 0.025), color = Color(255, 180, 123, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {} }
}
SWEP.WElements = {
["base++"] = { type = "Model", model = "models/props_combine/combinetrain01a.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(18.329, 1.085, -3.164), angle = Angle(175.024, 0.411, 0), size = Vector(0.037, 0.02, 0.017), color = Color(255, 180, 123, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {} },
["base+++"] = { type = "Model", model = "models/Items/boxflares.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(17.725, -0.431, -6.599), angle = Angle(6.518, 180, -90), size = Vector(0.277, 0.277, 0.469), color = Color(255, 255, 255, 255), surpresslightning = true, material = "models/error/new light1", skin = 0, bodygroup = {} },
["base+"] = { type = "Model", model = "models/props_combine/combine_mortar01a.mdl", bone = "ValveBiped.Bip01_R_Hand", rel = "", pos = Vector(6.356, 0.796, -2.659), angle = Angle(-94.139, 1.621, 0), size = Vector(0.129, 0.136, 0.108), color = Color(255, 147, 0, 255), surpresslightning = false, material = "", skin = 0, bodygroup = {} }
}
end
sound.Add(
{
name = "Weapon_Oberon.Single",
channel = CHAN_WEAPON,
volume = 1.0,
soundlevel = 100,
pitch = {85, 92},
sound = "weapons/gauss/fire1.wav"
})
SWEP.Base = "weapon_zs_baseshotgun"
SWEP.HoldType = "shotgun"
SWEP.ViewModel = "models/weapons/c_shotgun.mdl"
SWEP.WorldModel = "models/weapons/w_shotgun.mdl"
SWEP.UseHands = true
SWEP.CSMuzzleFlashes = false
SWEP.Primary.Sound = Sound("Weapon_Oberon.Single")
SWEP.Primary.Damage = 12
SWEP.Primary.NumShots = 5
SWEP.Primary.Delay = 0.8
SWEP.FireAnimSpeed = 0.55
SWEP.Primary.ClipSize = 7
SWEP.Primary.Automatic = false
SWEP.Primary.Ammo = "pulse"
SWEP.Primary.DefaultClip = 30
SWEP.ConeMax = 7.5
SWEP.ConeMin = 5
SWEP.ReloadDelay = 0.4
SWEP.WalkSpeed = SPEED_SLOWER
SWEP.TracerName = "AR2Tracer"
SWEP.PumpSound = Sound("Weapon_Shotgun.Special1")
SWEP.ReloadSound = Sound("Weapon_Shotgun.Reload")
SWEP.LegDamage = 9
SWEP.Tier = 3
SWEP.PointsMultiplier = GAMEMODE.PulsePointsMultiplier
GAMEMODE:AttachWeaponModifier(SWEP, WEAPON_MODIFIER_LEG_DAMAGE, 1)
GAMEMODE:AddNewRemantleBranch(SWEP, 1, "'Neptune' Pulse Shotgun", "Fast firing and reloading, uses 3x ammo", function(wept)
wept.RequiredClip = 3
wept.Primary.ClipSize = 21
wept.Primary.Delay = 0.6
wept.ReloadDelay = 0.1
wept.ReloadSound = Sound("npc/scanner/scanner_scan4.wav")
wept.EmitFireSound = function(self)
self:EmitSound("weapons/stunstick/alyx_stunner2.wav", 72, 115, 0.65, CHAN_AUTO)
self:EmitSound("weapons/gauss/fire1.wav", 72, 108, 0.65)
end
if CLIENT then
wept.VElements["base+++"].color = Color(0, 255, 255)
end
end)
function SWEP.BulletCallback(attacker, tr, dmginfo)
local ent = tr.Entity
if ent:IsValidLivingZombie() then
ent:AddLegDamageExt(dmginfo:GetInflictor().LegDamage, attacker, attacker:GetActiveWeapon(), SLOWTYPE_PULSE)
end
if IsFirstTimePredicted() then
util.CreatePulseImpactEffect(tr.HitPos, tr.HitNormal)
end
end
function SWEP:EmitFireSound()
self:EmitSound(self.Primary.Sound)
self:EmitSound("weapons/glock/glock18-1.wav", 75, math.random(162, 168), 0.7, CHAN_WEAPON + 20)
end