public void AddObtainedAbility(AbstractAbility ability) { AbstractAbilityCooldown aac = GameManager.instance.player.AddComponent(ability.GetCooldownType()) as AbstractAbilityCooldown; obtainedAbilities.Add(ability); abilityCooldowns.Add(aac); // Get next ability index int index = obtainedAbilities.Count - 1; IconManager.instance.SetAbilityIconByIndex(index, ability.abilityIcon); if (index < activeAbilities.Length) { activeAbilities[index] = index; aac.SetKeyCode(GameManager.instance.player.GetComponent <InputManager>().GetKeyCodeByInt(index)); } else { inactiveAbilities[index - activeAbilities.Length] = index; aac.enabled = false; } aac.Initialise(ability, GameManager.instance.player); }
public static AbstractAbilityCooldown GetWeaponCooldownHolder(GameObject player) { bool found = false; AbstractAbilityCooldown cooldown = null; AbstractAbilityCooldown[] cooldowns = player.GetComponents <AbstractAbilityCooldown>(); for (int i = 0; i < cooldowns.Length && !found; i++) { if (cooldowns[i].enabled && cooldowns[i].GetAbility() is AbstractWeapon) { cooldown = cooldowns[i]; break; } } return(cooldown); }