mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-17 13:53:45 +03:00
Upload
This commit is contained in:
107
lua/arccw/shared/attachments/uc_ammo_sg_drgn.lua
Normal file
107
lua/arccw/shared/attachments/uc_ammo_sg_drgn.lua
Normal file
@@ -0,0 +1,107 @@
|
||||
--[[
|
||||
| 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 = "\"DRGN\" Dragon's Breath"
|
||||
|
||||
att.SortOrder = -1
|
||||
att.Icon = Material("entities/att/arccw_uc_ammo_shotgun_generic.png", "mips smooth")
|
||||
att.Description = [[Novelty magnesium-based round that projects a spectacular jet of sparks and fire. Burning at over 3,000 °F, the blast isn't immediately lethal, but can easily set objects and people ablaze.
|
||||
|
||||
Only compatible with manual action shotguns due to a weak pressure curve.]]
|
||||
att.Desc_Pros = {
|
||||
"uc.ignite",
|
||||
"uc.pellet.12",
|
||||
}
|
||||
att.Desc_Cons = {
|
||||
"uc.accuracy.35",
|
||||
"uc.dragon",
|
||||
"uc.alwaysphys",
|
||||
}
|
||||
att.Desc_Neutrals = {
|
||||
"uc.manualonly",
|
||||
}
|
||||
att.Slot = {"ud_ammo_shotgun", "uc_ammo"}
|
||||
att.ActivateElements = {"uc_manualonly"}
|
||||
att.AutoStats = true
|
||||
|
||||
att.Add_Num = 12
|
||||
|
||||
-- zombies don't take damage from DMG_BURN (hardcoded to set them on fire)
|
||||
local dontburn = {
|
||||
npc_zombie = true,
|
||||
npc_zombie_torso = true,
|
||||
npc_zombine = true,
|
||||
npc_fastzombie = true,
|
||||
npc_fastzombie_torso = true,
|
||||
npc_headcrab = true,
|
||||
npc_headcrab_fast = true,
|
||||
npc_headcrab_black = true,
|
||||
}
|
||||
|
||||
att.Hook_PhysBulletHit = function(wep, data)
|
||||
if SERVER and data.tr.Entity then
|
||||
local d = data.bullet.Travelled * ArcCW.HUToM
|
||||
local dur = 6 - d * 2 / wep.Range
|
||||
if dur > 0 then
|
||||
data.tr.Entity:Extinguish()
|
||||
data.tr.Entity:Ignite(dur)
|
||||
end
|
||||
|
||||
local delta = math.Clamp(d / data.bullet.Range, 0, 1)
|
||||
|
||||
-- Impact is disabled (no bullet holes) so we do damage ourselves
|
||||
local dmg = DamageInfo()
|
||||
dmg:SetAttacker(data.bullet.Attacker)
|
||||
dmg:SetInflictor(data.bullet.Weapon)
|
||||
dmg:SetDamage(Lerp(delta, data.bullet.DamageMax, data.bullet.DamageMin))
|
||||
dmg:SetDamagePosition(data.bullet.Pos)
|
||||
dmg:SetDamageForce(data.bullet.Vel)
|
||||
dmg:SetDamageType(dontburn[data.tr.Entity:GetClass()] and DMG_BUCKSHOT or (DMG_BURN + DMG_BUCKSHOT))
|
||||
|
||||
data.tr.Entity:TakeDamageInfo(dmg)
|
||||
end
|
||||
|
||||
local effect = EffectData()
|
||||
effect:SetOrigin(data.tr.HitPos)
|
||||
util.Effect("StunstickImpact",effect)
|
||||
|
||||
if data.tr.HitWorld then
|
||||
util.Decal("FadingScorch",data.tr.HitPos - data.tr.HitNormal,data.tr.HitPos + data.tr.HitNormal)
|
||||
end
|
||||
end
|
||||
|
||||
att.Override_PhysBulletImpact = false
|
||||
|
||||
att.Override_DamageType = DMG_BURN + DMG_BUCKSHOT
|
||||
|
||||
att.Override_HullSize = 2
|
||||
att.Override_HullSize_Priority = 100
|
||||
att.Add_AccuracyMOA = 35
|
||||
att.Mult_Damage = .5
|
||||
att.Mult_DamageMin = .5
|
||||
|
||||
att.Override_AlwaysPhysBullet = true
|
||||
att.Override_PhysBulletMuzzleVelocity = 100
|
||||
att.Mult_PhysBulletGravity = 0.75
|
||||
att.Override_PhysBulletDrag = 4
|
||||
|
||||
att.Override_PhysTracerProfile = "uc_dragon"
|
||||
att.Override_MuzzleEffect = "muzzleflash_dragonbreath"
|
||||
|
||||
att.Override_UC_ShellColor = Color(0.9 * 255, 0.3 * 255, 0.1 * 255)
|
||||
|
||||
att.Hook_AddShootSound = function(wep, data)
|
||||
wep:EmitSound("DB_ADD", data.volume,data.pitch,1,CHAN_WEAPON - 1) -- lua/arccw/shared/sh_0_uc.lua
|
||||
end
|
||||
|
||||
att.GivesFlags = {"needsmanual"}
|
||||
att.Hook_Compatible = function(wep)
|
||||
if (!wep.ManualAction and !wep.UC_CanManualAction) or !wep:GetIsShotgun() or wep:GetBuff_Override("UC_Shotshell") then return false end
|
||||
end
|
||||
Reference in New Issue
Block a user