public virtual void                    SortStartBySub()
 {
     StartArray.Sort((p1, p2) => p1.SubText.CompareTo(p2.SubText));
     for (int i = 0; i < StartArray.Count; i++)
     {
         StartArray[i].Index = i;
     }
 }
    public virtual void                    RemoveStartItemByText(string strText)
    {
        int i = StartArray.FindIndex(x => x.Text.ToLower() == strText.ToLower());

        if (i >= 0)
        {
            RemoveStartItemByIndex(i);
        }
    }
    public virtual void                    RemoveStartItemByValue(string strValue)
    {
        int i = StartArray.FindIndex(x => x.Value.ToLower() == strValue.ToLower());

        if (i >= 0)
        {
            RemoveStartItemByIndex(i);
        }
    }
    // -- ADD ITEM TO STARTING LIST
    public virtual void                    AddStartItem(string strValue, string strText, Sprite sprIcon = null, string strSub = "")
    {
        int i = StartArray.FindIndex(x => x.Value.ToLower() == strValue.ToLower() || x.Text.ToLower() == strText.ToLower());

        if (i >= 0)
        {
            // OVERWRITE EXISTING ITEM
            StartArray[i].Value   = strValue;
            StartArray[i].Text    = strText;
            StartArray[i].Icon    = sprIcon;
            StartArray[i].SubText = strSub;
            StartArray[i].Index   = i;
        }
        else
        {
            StartArray.Add(new StartingListItem(strValue, strText, sprIcon, strSub));
            StartArray[StartArray.Count - 1].Index = StartArray.Count - 1;
        }
    }
    // -- REMOVE ITEM FROM STARTING LIST
    public virtual void                    RemoveStartItemByIndex(int intIndex)
    {
        if (intIndex < 0 || intIndex >= StartArray.Count)
        {
            return;
        }

        for (int i = StartArray.Count - 1; i >= intIndex; i--)
        {
            if (i > intIndex)
            {
                // MOVE THE ITEM UP ONE SLOT
                StartArray[i].Index = i - 1;
            }
            else
            {
                // REMOVE THE ITEM
                StartArray.RemoveAt(i);
            }
        }
    }