From 8ae0f0cbd6e018a88f55b6fcbace79b0866813be Mon Sep 17 00:00:00 2001 From: LiddulBOFH <13317534+LiddulBOFH@users.noreply.github.com> Date: Sun, 25 Jun 2023 19:40:17 -0500 Subject: [PATCH] Modify APHE penetration Made APHE have scaling penetration, ranging between AP to HE, based on explosive filler ratio If the filler ratio is 0, it functions identically to AP (X amount of penetration) Otherwise if it is 1 (100%), it functions identically to HE (0mm pen) Anywhere between it will function accordingly, as an AP shell with some explosive filler --- lua/acf/entities/ammo_types/aphe.lua | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lua/acf/entities/ammo_types/aphe.lua b/lua/acf/entities/ammo_types/aphe.lua index b4eb7ae8e..c23d3e268 100644 --- a/lua/acf/entities/ammo_types/aphe.lua +++ b/lua/acf/entities/ammo_types/aphe.lua @@ -18,6 +18,14 @@ function Ammo:OnLoaded() } end +function Ammo:GetPenetration(Bullet, Speed) + if not isnumber(Speed) then + Speed = Bullet.Flight and Bullet.Flight:Length() / ACF.Scale * 0.0254 or Bullet.MuzzleVel + end + + return ACF.Penetration(Speed, Bullet.ProjMass, Bullet.Diameter * 10) * (1 - Bullet.FillerRatio) +end + function Ammo:GetDisplayData(Data) local Display = Ammo.BaseClass.GetDisplayData(self, Data) local FragMass = Data.ProjMass - Data.FillerMass @@ -45,6 +53,7 @@ function Ammo:UpdateRoundData(ToolData, Data, GUIData) Data.MuzzleVel = ACF.MuzzleVelocity(Data.PropMass, Data.ProjMass, Data.Efficiency) Data.DragCoef = Data.ProjArea * 0.0001 / Data.ProjMass Data.CartMass = Data.PropMass + Data.ProjMass + Data.FillerRatio = math.Clamp(ToolData.FillerRatio, 0, 1) hook.Run("ACF_UpdateRoundData", self, ToolData, Data, GUIData)