Crylink damage strongly depends on hit angle
(Factored out from discussion on d817b420)
Crylink has a mechanism called "linkexplode" - when one projectile hits, all explode.
Players are hitboxes, always axial - EVEN if the player model itself is rotated.
So one player shooting crylink primary at another player from short AXIAL distance (like '0 0 0' and '141 0 0') will always achieve max damage - all projectiles hit player hitbox at the same time and will be so close that g_balance_crylink_primary_damage is dealth.
However, one player shooting crylink primary at another player from short ANGLED distance (like '0 0 0' and '100 100 0') will achieve reduced damage - one projectile hits near the closest edge of the player hitbox, and the other projectiles are some distance away from the hitbox when they linkexplode, so they'll deal lower damage down to edgedamage. This effect is stronger in primary than secondary as secondary has less spread and the projectiles thus tend to be closer together, but in principle it does affect secondary too.
This means that crylink is currently more effective in axial situations, and less effective in angled situations - EVEN THOUGH ONE CAN'T EVEN SEE THE DIFFERENCE IN GAME (e.g. one could rotate the entire map 45 degrees in Radiant and totally throw off Crylink balance).
Removing hitbox effects entirely and treating players as cylinders or capsules would be nice - but probably out of scope.
DrJaska suggested setting primary edgedamage to the same value as primary damage (currently it is 50% of it), which is an ok-ish mitigation as primary damage from floor-to-player radius damage is rather unimportant due to the bouncing. I do propose that we could temporarily do this, although I'd prefer a real solution.
One thing I could propose would be adding a small delay - like, 0.05 sec - to the linkexplode mechanism, to give the other projectiles a chance to become a direct hit before forcing their explosion. It'd still keep the spam of "unused projectiles" down (which was the primary goal of linkexplode), but would mostly mitigate this issue. What about that?