Example #1
0
        public static void Swap(ref AbilityGroupIndex a, ref AbilityGroupIndex b)
        {
            AbilityGroupIndex temp = a;

            a = b;
            b = temp;
        }
Example #2
0
    public void SwapAbilities(int abilityA, int abilityB)
    {
        if (abilityA != abilityB)
        {
            AbilityGroupIndex a = new AbilityGroupIndex();
            AbilityGroupIndex b = new AbilityGroupIndex();

            for (int i = 0; i < activeAbilities.Length; i++)
            {
                if (activeAbilities[i] == abilityA)
                {
                    a.Set(AbilityGroup.ACTIVE, i);
                }
                else if (activeAbilities[i] == abilityB)
                {
                    b.Set(AbilityGroup.ACTIVE, i);
                }
            }

            for (int i = 0; i < inactiveAbilities.Length; i++)
            {
                if (inactiveAbilities[i] == abilityA)
                {
                    a.Set(AbilityGroup.INACTIVE, i);
                }
                else if (inactiveAbilities[i] == abilityB)
                {
                    b.Set(AbilityGroup.INACTIVE, i);
                }
            }

            if (a.group == b.group)
            {
                if (a.group == AbilityGroup.ACTIVE)
                {
                    SwapKeyCodes(activeAbilities[a.index], activeAbilities[b.index]);
                    int temp = activeAbilities[a.index];
                    activeAbilities[a.index] = activeAbilities[b.index];
                    activeAbilities[b.index] = temp;
                }
                else if (a.group == AbilityGroup.INACTIVE)
                {
                    int temp = inactiveAbilities[a.index];
                    inactiveAbilities[a.index] = inactiveAbilities[b.index];
                    inactiveAbilities[b.index] = temp;
                }
            }
            else if (a.group == AbilityGroup.ACTIVE && b.group == AbilityGroup.INACTIVE)
            {
                int temp = inactiveAbilities[b.index];
                inactiveAbilities[b.index] = activeAbilities[a.index];
                abilityCooldowns[inactiveAbilities[b.index]].enabled = false;
                abilityCooldowns[inactiveAbilities[b.index]].SetKeyCode(KeyCode.None);

                activeAbilities[a.index] = temp;
                abilityCooldowns[activeAbilities[a.index]].enabled = true;
                abilityCooldowns[activeAbilities[a.index]].SetKeyCode(InputManager.Instance.GetKeyCodeByInt(a.index));
            }
            else if (a.group == AbilityGroup.INACTIVE && b.group == AbilityGroup.ACTIVE)
            {
                int temp = inactiveAbilities[a.index];
                inactiveAbilities[a.index] = activeAbilities[b.index];
                abilityCooldowns[inactiveAbilities[a.index]].enabled = false;
                abilityCooldowns[inactiveAbilities[a.index]].SetKeyCode(KeyCode.None);

                activeAbilities[b.index] = temp;
                abilityCooldowns[activeAbilities[b.index]].enabled = true;
                abilityCooldowns[activeAbilities[b.index]].SetKeyCode(InputManager.Instance.GetKeyCodeByInt(b.index));
            }
        }
    }