This is about code that looks through player's inventory for items of a
particular classes and similar code being used in several other places.
While `AcediaCore` now comes with an API method that does precisely
that, the algorithm itself is idiomatic enough to not be bothered with
it being rewritten in sevral different places and trying to replace
every such piece of code simply for getting rid of code duplication can
lead to introduction of new bugs with little to no actual benefit to
maintability.
This feature addresses several bugs related to pipe bombs:
1. Gaining extra explosive damage by shooting pipes with
a high fire rate weapon;
2. Other players exploding one's pipes;
3. Corpses and story NPCs exploding nearby pipes;
4. Pipes being stuck in places where they cannot detect
nearby enemies from and, therefore, not exploding.
This feature addresses the bug that allows teammates to explode some of
the player's projectiles by damaging them even when friendly fire is
turned off, therefore killing the player (whether by accident or not).
Problem is solved by "disarming" projectiles vulnerable to this friendly
fire and replacing them with our own class of projectile that is spawned
only on a server and does additional safety checks to ensure it will
only explode when it is expected from it.