public static void Swap(ref AbilityGroupIndex a, ref AbilityGroupIndex b) { AbilityGroupIndex temp = a; a = b; b = temp; }
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)); } } }