//load up the ability and setup the energy
        public void Init(int facID, bool startWithFullEnergy = false, bool isPlayerFaction = true)
        {
            factionID = facID;

            if (startWithFullEnergy)
            {
                energy = energyFull;
            }

            List <FactionAbility> dbList = AbilityManagerFaction.GetAbilityDBList();

            abilityList = new List <FactionAbility>();
            for (int i = 0; i < dbList.Count; i++)
            {
                if (dbList[i].onlyAvailableViaPerk)
                {
                    continue;
                }
                if (availableIDList.Contains(dbList[i].prefabID))
                {
                    abilityList.Add(dbList[i].Clone());
                }
                //if(!unavailableIDList.Contains(dbList[i].prefabID)) abilityList.Add(dbList[i].Clone());
            }

            //add ability unlocked via perk (PerkManager is carried forth from last level)
            if (isPlayerFaction)
            {
                List <int> perkAbilityXIDList = PerkManager.GetFactionAbilityXIDList();
                for (int n = 0; n < perkAbilityXIDList.Count; n++)
                {
                    for (int i = 0; i < abilityList.Count; i++)
                    {
                        if (perkAbilityXIDList[n] == abilityList[i].prefabID)
                        {
                            abilityList.RemoveAt(i);
                            i -= 1;
                        }
                    }
                }

                List <int> perkAbilityIDList = PerkManager.GetFactionAbilityIDList();
                for (int n = 0; n < perkAbilityIDList.Count; n++)
                {
                    for (int i = 0; i < dbList.Count; i++)
                    {
                        if (dbList[i].prefabID == perkAbilityIDList[n])
                        {
                            abilityList.Add(dbList[i].Clone());
                            break;
                        }
                    }
                }
            }


            for (int i = 0; i < abilityList.Count; i++)
            {
                abilityList[i].Init(factionID);
            }
        }