UI/HUD/RoundTracker.cs
using System.Collections.Generic;
using Sandbox;

public sealed class RoundTracker : Component
{
    public static RoundTracker Instance { get; private set; }

    public int KillsCount { get; private set; } = 0;
    public Dictionary<CrowdAction, int> PlayerActionsCount { get; } = new();

    protected override void OnAwake()
    {
        Instance = this;
    }

    protected override void OnEnabled()
    {
        CrowdEvaluator.OnEvaluatedCrowdAction += TrackAction;
        GameManager.OnPhaseChanged += HandlePhase;
    }

    protected override void OnDisabled()
    {
        CrowdEvaluator.OnEvaluatedCrowdAction -= TrackAction;
        GameManager.OnPhaseChanged -= HandlePhase;
    }

    private void HandlePhase( GamePhase phase )
    {
        if ( phase == GamePhase.RoundIntro )
        {
            KillsCount = 0;
            PlayerActionsCount.Clear();
        }
    }

    private void TrackAction( CrowdEventPayload payload, CrowdActionDefinition def )
    {
        if ( payload.Actor?.Components.Get<PlayerController>() == null ) return;

        if ( !PlayerActionsCount.ContainsKey( payload.Action ) )
            PlayerActionsCount[payload.Action] = 0;

        PlayerActionsCount[payload.Action]++;

        if ( payload.Action is CrowdAction.Decapitation 
             or CrowdAction.Impale 
             or CrowdAction.Finisher 
             or CrowdAction.EnvironmentalKill 
             or CrowdAction.UnfairFightKill 
             or CrowdAction.UnsatisfyingKill )
        {
            KillsCount++;
        }
    }
}