예제 #1
0
    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);
    }
예제 #2
0
    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);
    }