예제 #1
0
    private void Instance_AbilityChanged(Abilities ability)
    {
        AbilityBase toEnable = null;

        _abilities.ForEach(a =>
        {
            if (ability != a.Ability && a.gameObject.activeSelf)
            {
                a.gameObject.SetActive(false);
                a.OnDeactivated();
            }
        });


        switch (ability)
        {
        case Abilities.None:
            break;

        case Abilities.Gun:
            toEnable = _abilities.FirstOrDefault(a => a.Ability == Abilities.Gun);
            break;

        case Abilities.Laser:
            toEnable = _abilities.FirstOrDefault(a => a.Ability == Abilities.Laser);
            break;

        case Abilities.NPC_Commander:
            toEnable = _abilities.FirstOrDefault(a => a.Ability == Abilities.NPC_Commander);
            break;

        case Abilities.Movement:
            toEnable = _abilities.FirstOrDefault(a => a.Ability == Abilities.Movement);
            break;
        }

        if (toEnable != null)
        {
            toEnable.gameObject.SetActive(true);
            toEnable.OnActivated();
        }
    }