Combat/EnemyShotTrace.cs
namespace Prototype;
/// <summary>Use animated damage hitboxes while leaving navigation capsules out of gunfire.</summary>
public static class EnemyShotTrace
{
public static SceneTraceResult Run( Scene scene, Vector3 start, Vector3 end )
{
var solid = scene.Trace.Ray( start, end )
.WithoutTags( "player", "projectile", "enemy_model_proxy" ).Run();
var body = scene.Trace.Ray( start, end ).UsePhysicsWorld( false ).UseHitboxes( true )
.WithoutTags( "player", "projectile" ).Run();
return body.Hit && (!solid.Hit || body.Fraction <= solid.Fraction) ? body : solid;
}
}