Files
wnsrc/lua/arccw/shared/attachments/ud_m16_barrel_sd.lua
lifestorm df294d03aa Upload
2024-08-04 23:54:45 +03:00

94 lines
2.4 KiB
Lua

--[[
| 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/
--]]
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