A component that listens for trigger entries on a Zone and instantly kills player pawns entering it by sending a DamageRequestEvent with maximal damage.
using Sandbox;
using Sandbox.Events;
namespace KOTH;
public sealed class KillZone : Component, Component.ITriggerListener
{
[RequireComponent] public Zone Zone { get; private set; }
void ITriggerListener.OnTriggerEnter(Collider Collider)
{
var PlayerPawn = Collider.GameObject.Root.Components.Get<PlayerPawn>();
if (PlayerPawn.IsValid())
{
FDamageRequest DamageRequest = new()
{
TargetDamageComponent = PlayerPawn.DamageComponent,
AttackerPlayerPawn = null,
DamageOrigin = 0,
BaseDamage = int.MaxValue,
BaseKnockbackStrength = 0,
DirectImpact = true,
DamageType = EDamageType.Melee,
};
Game.ActiveScene.Dispatch(new DamageRequestEvent(DamageRequest));
}
}
}