The Gauss gun (or Tau Cannon) has a powerful secondary charged blast that can punch through walls. This tutorial goes into the specifics, quirks and ways to prevent the gauss from penetrating walls.
The Basics:The secondary charge can blast through any wall, both world geometry or brushbased entity. If the wall is 8 or less units thick, the engine will also render a beam and glow effect on the other side of the wall. If the wall is thicker than 8 units, there will not be a visual effect but the damage will still be dealt.
Blast Radius:The secondary charge will do damage to a single point it is aimed at, but there will also be blast radius damage on the other side of the brush it has been fired on. On a full charge this radius can extend up to 490 units! Anything within this area of effect will take the blast damage.
Penetration Prevention:As mentioned above, there is no limit to the wall penetration, so how can you shield a vital NPC or func_breakable from being destroyed?
On the right you see the prefered method: create a hollow space of /more /than 8 units. For the blast damage to activate, it requires at least 9 units of space. After that, the beam will not travel through the next brush and everything that lies beyond is safe.
On the left: You could also stack up at least 9 brushes with 1 unit gaps. If there isn't enough room to start the blast damage the beam will continue through the next brush. However, there's a limit of 8 brushes. After the 9th it will no longer penetrate. This method is far less useful because it takes more resources, more space and is more annoying to work with. To make it even worse, this setup triggers the deflection bug. More on this below.
Another way to protect your func_breakable is to cover it with a brush, like an invisible func_wall_toggle. The gauss beam will impact the wall_toggle and exit on the other side, dealing blast damage there. However, in the process it will ignore any other brushes inside that brush, because it's coded to deal damage to anything before entering the brush and after leaving it. You can trigger this wall_toggle as soon as players reach the room where they can destroy the func_breakable.
Quirks:A known bug (or feature?) on the secondary fire is that it can deflect back to the player and instagib him. The behaviour can be a bit erratic but here is what I've found out. First off: this happens if you use secondary fire to fire through a brush and then hit an entity. This could be a monster or a brush based entity like a func_wall. It doesn't seem to affect (non-entity) world geometry. Secondly, the distance is important. If the target is within 100 units of the point of impact then the generally doesn't reflect back to the player and the target is destroyed. If you place the target further than 100 units, all damage will be reflected back on the player and the target will not be damaged. This could also be a way to protect your NPCs and give the ultimate punishment to players who try to kill them.
One last thing to note is that these values were tested in Singleplayer mode. The code uses different multipliers for damage for Multiplayer modes. These are generally lower, so I expect the above guidelines to hold up for Multiplayer too. Thanks for reading!