• Please make sure you are familiar with the forum rules. You can find them here: https://forums.tripwireinteractive.com/index.php?threads/forum-rules.2334636/

PC Dragonsbreath and Spitfire penetration and how it affects Residual Flames spawned by these

Category: Code
Summary: Even if ZED has more penetration resistance than penetration power of these weapons, their projectiles will still pass through and will spawn Residual Flames somewhere but not on this ZED's location.

Example: You're a Firebug and using Dragonsbreath against Scrake. Dragonsbreath pellets have penetration power of 2 and Scrake has penetration resistance of 4. So you'd expect all these pellets to hit Scrake without passing through and then spawn a residual flame on Scrake's location, right under its feet. But in fact these projectiles will still "pass through" (none of ZEDs behind the Scrake will take damage) and spawn their flames somewhere on the map (either after hitting a wall or the other ZED).

Description: Technically any bullet or a projectile will always pass through its initial target as long as it will be having a positive penetration power value. The other side effect of this is that if you're a Gunslinger or a Sharpshooter and shooting at one ZED's head through a body of the other ZED it will always give you stack of Rack 'Em Up even if the ZED that blocks your view has more resistance than your weapon has power, or it might give you 2 stacks of ReU when you have two ZEDs lined up but your weapon can't even penetrate first one's head.

That's because if KFProj_Bullet, in function ProcessTouch the first bullet fired will always have bPassThrough = TRUE as long as if (KFW == none || KFW.GetInitialPenetrationPower(Instigator.FiringMode) > 0.0f)

To prevent this from happening this bool variable should be set to True only after checking out its remaining penetration power after passing through ZED

Lines 85-90
Spoiler!
Have to look something like this
Spoiler!
 
  • Like
Reactions: NoknokHuzthayr