private void CalculateAPM()
    {
        float action = actions.Count * 60;

        APMs.Add(action);
        actions.Clear();

        lastAction = ACTION_TYPES.WAIT;

        if (APMs.Count > calculationUpdateDelay)
        {
            float sum = 0;

            for (var i = 0; i < APMs.Count; i++)
            {
                sum += APMs[i];
            }

            APM = (((sum / APMs.Count) * (60 / calculationUpdateDelay)) + APM) / 2;
            APMs.Clear();

            CalculateMilitaryValue();
            CalculateExpansionValue();
            CalculateEconomyValue();
            CalculateTotals();
        }
    }
    public void NewAction(ACTION_TYPES _action)
    {
        if (_action == lastAction)
        {
            return;
        }

        lastAction = _action;
        actions.Add(lastAction);
    }