DroppedReloadPod.cs
using Sandbox;
namespace PaintballBaddies;
/// <summary>Brief physical presentation of a pod released on elimination.</summary>
public sealed class DroppedReloadPod : Component
{
private float age,startHeight;
public float FallDistance => startHeight-WorldPosition.z;
public bool ActorFilterVerified
{
get
{
var center = WorldPosition + WorldRotation * new Vector3(0,0,4.5f);
var offset = WorldRotation * new Vector3(5,0,0);
var ordinary = Scene.Trace.Sphere(.35f,center-offset,center+offset).Run();
var actor = Scene.Trace.Sphere(.35f,center-offset,center+offset).WithCollisionRules("paintball_actor").Run();
return ordinary.GameObject == GameObject && actor.GameObject != GameObject;
}
}
public bool ShotFilterVerified
{
get
{
var center = WorldPosition + WorldRotation * new Vector3(0,0,4.5f);
var offset = WorldRotation * new Vector3(5,0,0);
var ordinary = Scene.Trace.Sphere(.35f,center-offset,center+offset).Run();
var filtered = Scene.Trace.Sphere(.35f,center-offset,center+offset).WithoutTags("paintball_debris").Run();
return ordinary.GameObject == GameObject && filtered.GameObject != GameObject;
}
}
protected override void OnStart(){startHeight=WorldPosition.z;}
protected override void OnUpdate(){age+=Time.Delta;if(age>5)GameObject.Destroy();}
}