World/UberZone.cs

A trigger zone component that listens for physics trigger enter/exit events and grants players an "Uber" effect when they enter. It looks up a PlayerPawn component on the colliding root object and calls DamageComponent.BroadcastUber() if present on enter. Exit handler does nothing beyond validating the player.

Networking
using Sandbox;
using Sandbox.Diagnostics;

namespace KOTH;

public sealed class UberZone : Zone, Component.ITriggerListener
{
	void ITriggerListener.OnTriggerEnter(Collider Collider)
	{
		var PlayerPawn = Collider.GameObject.Root.Components.Get<PlayerPawn>();

		if (!PlayerPawn.IsValid())
		{
			return;
		}

		PlayerPawn.DamageComponent?.BroadcastUber();
	}

	void ITriggerListener.OnTriggerExit(Collider Collider)
	{
		var PlayerPawn = Collider.GameObject.Root.Components.Get<PlayerPawn>();
		
		if (!PlayerPawn.IsValid())
		{
			return;
		}
	}
}