public sealed partial class PlayerPawn
{
/// <summary>
/// Routes a named game event to all weapon components.
/// </summary>
public void RunGameEvent( string eventName )
{
// Use child component iteration (same as SimulateInventory) to avoid NetList
// race conditions where the list updates before weapon GameObjects are ready.
foreach ( var weapon in Components.GetAll<Weapon>( FindMode.InChildren ) )
weapon.RunGameEvent( eventName );
}
}