Decay/lua/arccw/shared/attachments/ud_m16_barrel_sd.lua

84 lines
2.2 KiB
Lua

att.PrintName = "10\" Suppressed Barrel"
if GetConVar("arccw_truenames"):GetBool() then
att.PrintName = "10\" M16 SD Barrel"
end
att.Icon = Material("entities/att/acwatt_ud_m16_barrel_sd.png", "smooth mips")
att.Description = "Integrally suppressed short barrel made by hobbyists. Dampens sound effectively, but the suppressor adds to weapon weight.\nPerformance may degrade with sustained fire."
att.Desc_Pros = {
--"uc.auto"
}
att.Desc_Cons = {
"uc.overheat"
}
att.Desc_Neutrals = {
"uc.supptail",
"ud.m16.allowfs",
}
att.Slot = "ud_m16_blen"
att.AutoStats = true
att.Mult_SightTime = 1.05
att.Mult_Range = 0.65
att.Mult_Recoil = 1.15
att.Mult_AccuracyMOA = 1.5
att.Mult_RPM = 1.111
att.Mult_HipDispersion = 0.75
att.Add_BarrelLength = -10
att.Mult_PhysBulletMuzzleVelocity = 0.78
att.LHIK = true
att.Model = "models/weapons/arccw/atts/m4_lhik.mdl"
att.Mult_ShootVol = 0.65
att.Silencer = true
att.Override_MuzzleEffect = "muzzleflash_suppressed"
att.GivesFlags = {"sd", "ud_m16_rscompatible", "ud_m16_sd"}
att.SDBarrel = true
att.ActivateElements = {"hg_sd"}
att.Override_Jamming = true
att.Override_HeatLockout = false
att.Override_HeatFix = false
att.Override_HeatCapacity = 90
att.Override_HeatDelayTime = 2
att.Override_HeatDissipation = 7.5
att.Hook_ModifyRPM = function(wep, delay)
local heat = math.Clamp(wep:GetHeat() / wep:GetMaxHeat(), 0, 1)
if heat > 0.5 then
return delay * (1 + ((heat - 0.5) / 0.5) * 0.5)
end
end
att.M_Hook_Mult_ShootVol = function(wep, data)
local heat = math.Clamp(wep:GetHeat() / wep:GetMaxHeat(), 0, 1)
data.mult = data.mult * (1 + heat * 0.25)
end
att.M_Hook_Mult_ShootPitch = function(wep, data)
local heat = math.Clamp(wep:GetHeat() / wep:GetMaxHeat(), 0, 1)
if heat > 0.5 then
data.mult = data.mult * (1 - (heat - 0.5) / 0.5 * 0.15)
end
end
att.M_Hook_Mult_AccuracyMOA = function(wep, data)
local heat = math.Clamp(wep:GetHeat() / wep:GetMaxHeat(), 0, 1)
if heat > 0.5 then
data.mult = data.mult * (1 + ((heat - 0.5) / 0.5))
end
end
att.Hook_GetDistantShootSound = function(wep, distancesound)
if wep:GetBuff("PhysBulletMuzzleVelocity") < ArcCW.UC.SubsonicThreshold then
return false
end
end