//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); } }