Skip to content

Conversation

@JoriKos
Copy link
Contributor

@JoriKos JoriKos commented Oct 23, 2025

The Pomson 6000 currently immediately collides with teammates, which makes it absolutely unusable near any teammate. This fix simply makes it behave like other projectiles, such as rockets, which pass through teammates for a short duration after being fired. Does not affect the behaviour on enemy players, nor does it affect the Bison.

Demonstration of how it works with this fix: https://www.youtube.com/watch?v=NR5eppSOFgk

Partially fixes ValveSoftware/Source-1-Games#2592

@JoriKos
Copy link
Contributor Author

JoriKos commented Oct 23, 2025

I'd also like to point out this PR was created at the most unfortunate time, as I initially started writing it mere minutes after the update dropped.

@FlaminSarge
Copy link
Contributor

Does this cover any cases that #1232 does not?

@JoriKos
Copy link
Contributor Author

JoriKos commented Oct 24, 2025

Does this cover any cases that #1232 does not?

Weird, that one didn't show up when I looked for it when I first looked into this. It does seem much less efficient, spliting up the single if statement into 4 separate ones (which seems a bit excessive) and (also seemingly unnecessarily) checks for it being a player.

Other than that it seems like they both achieve the same objective, not sure what the standard is for a situation like this.

@FlaminSarge
Copy link
Contributor

FlaminSarge commented Oct 25, 2025

Replying to #1567 (comment)

I would argue that the way the other PR is laid out makes the code far more readable and understandable than a one-liner, despite the capability to make it a one-liner.

The player check might need to be looked at, though; do these things need to still collide with buildings/etc? From a logical perspective, checking for player before checking CanCollideWithTeammates makes sense, since Teammates wouldn't include buildings.

@juliarose
Copy link

juliarose commented Oct 25, 2025

Replying to #1567 (comment)

Without the IsPlayer check the projectile will pass through buildings, the Engineer is not normally able to shoot through his or friendly buildings (I am pretty sure.) It's also identical in behavior to Jarate/Mad Milk.

if ( pOther->IsPlayer() && pOther->GetTeamNumber() == GetTeamNumber() && !CanCollideWithTeammates() )

I rewrote the if statement because it was hard to read. This also avoids calling ShouldPenetrate or InSameTeam more than once.

@JoriKos JoriKos closed this Oct 25, 2025
@JoriKos
Copy link
Contributor Author

JoriKos commented Oct 25, 2025

Without the IsPlayer check the projectile will pass through buildings

That makes a lot of sense actually. I've closed the PR in favour of yours, though I do still prefer the formatting to be one line :P

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[TF2] Pomson bugs.

3 participants