public StatusGameObject createNewStatus(Status status, EnemyData enemyData)
    {
        GameObject       statusInstance   = GameObject.Instantiate(statusPrefab, new Vector3(0, 0, 0), Quaternion.identity);
        StatusGameObject statusGameObject = statusInstance.GetComponentInChildren <StatusGameObject>();

        statusGameObject.initialize(statusInstance, status, enemyData);
        statusInstance.transform.SetParent(statusesInstance.transform, false);
        activeStatuses.Add(statusGameObject);

        return(statusGameObject);
    }
    public void increment(StatusGameObject statusGameObject, int delta)
    {
        Status status = statusGameObject.status;

        statusGameObject.increment(delta);

        if (status.data.statusCount <= 0)
        {
            activeStatuses.Remove(statusGameObject);
        }
    }
    public static int getAppliedStatusCount(StatusTypes.StatusEnum statusEnum, List <StatusGameObject> activeStatuses)
    {
        StatusGameObject match = activeStatuses.FirstOrDefault(activeStatuse => activeStatuse.status.statusEnum == statusEnum);

        return(match == null ? 0 : match.status.data.statusCount);
    }