void SetAbilityData()
    {
        selectedAbilityData.ability1 = attackAbilityText;
        selectedAbilityData.ability2 = defenseAbilityText;
        selectedAbilityData.ability3 = "Blink";

        for (int i = 0; i < selectedAbilityTexts.Length; i++)
        {
            switch (i + 1)
            {
            case 1:
            {
                selectedAbilityData.ability4 = selectedAbilityTexts[i].text;
                break;
            }

            case 2:
            {
                selectedAbilityData.ability5 = selectedAbilityTexts[i].text;
                break;
            }

            case 3:
            {
                selectedAbilityData.ability6 = selectedAbilityTexts[i].text;
                break;
            }

            case 4:
            {
                selectedAbilityData.ability7 = selectedAbilityTexts[i].text;
                break;
            }

            default:
            {
                Debug.LogError("AbilityDraftLogic SetAbilityData out of range");
                break;
            }
            }
        }

        // Set the selected abilities so that the
        Debug.Log("AbilityDraftLogic SetAbilityData Setting AbilityMapper");
        AbilityMapper.SetData(selectedAbilityData);
    }
    private void Awake()
    {
        SharedInstance = this;

        // Load all abilities from the Resource folder
        //LoadAbilities();

        // This is for mapping the selected abilties
        mapper = new AbilityMapper();

        // This is the container of all abilities
        // We will move all abilities from an array to a map because it is faster to access them
        abilityMap = new Dictionary <string, Ability>();

        // Fill the AbilityMap
        for (int i = 0; i < abilityContainerArray.Length; i++)
        {
            abilityMap.Add(abilityContainerArray[i].name, abilityContainerArray[i]);
        }

        // Remove reference
        abilityContainerArray = null;
    }