private void SetupAbilityButtons()
    {
        AbilityButton[] abilityButtons = FindObjectsOfType <AbilityButton>();
        HackerLoadout   currentLoadout = hacker.GetHackerLoadout();

        foreach (AbilityButton abilityButton in abilityButtons)
        {
            switch (abilityButton.GetWhichAbility())
            {
            case "rig":
                HackerMod rigMod = currentLoadout.GetRigMod();
                abilityButton.SetupAbility(rigMod);
                break;

            case "neuralImplant":
                HackerMod neuralImplantMod = currentLoadout.GetNeuralImplantMod();
                abilityButton.SetupAbility(neuralImplantMod);
                break;

            case "uplink":
                HackerMod uplinkMod = currentLoadout.GetUplinkMod();
                abilityButton.SetupAbility(uplinkMod);
                break;
            }
        }
    }
    private void SetupActiveHackerSlots()
    {
        activeHackerSlotBtns = new List <LoadoutSlotBtn>();
        activeHackerSlotBtns.AddRange(hackerModSlots); // Always need these three

        HackerLoadout hackerLoadout = FindObjectOfType <PlayerData>().GetCurrentHacker().GetHackerLoadout();
        HackerMod     neuralImplant = hackerLoadout.GetNeuralImplantMod();

        switch (neuralImplant.GetCurrentLevelSlotCount())
        {
        case 1:
            wetware1SlotHolder.SetActive(true);
            wetware2SlotHolder.SetActive(false);
            wetware3SlotHolder.SetActive(false);
            activeHackerSlotBtns.AddRange(wetware1Slots);
            break;

        case 2:
            wetware1SlotHolder.SetActive(false);
            wetware2SlotHolder.SetActive(true);
            wetware3SlotHolder.SetActive(false);
            activeHackerSlotBtns.AddRange(wetware2Slots);
            break;

        case 3:
            wetware1SlotHolder.SetActive(false);
            wetware2SlotHolder.SetActive(false);
            wetware3SlotHolder.SetActive(true);
            activeHackerSlotBtns.AddRange(wetware3Slots);
            break;
        }

        HackerMod rig = hackerLoadout.GetRigMod();

        switch (rig.GetCurrentLevelSlotCount())
        {
        case 1:
            software1SlotHolder.SetActive(true);
            software2SlotHolder.SetActive(false);
            software3SlotHolder.SetActive(false);
            activeHackerSlotBtns.AddRange(software1Slots);
            break;

        case 2:
            software1SlotHolder.SetActive(false);
            software2SlotHolder.SetActive(true);
            software3SlotHolder.SetActive(false);
            activeHackerSlotBtns.AddRange(software2Slots);
            break;

        case 3:
            software1SlotHolder.SetActive(false);
            software2SlotHolder.SetActive(false);
            software3SlotHolder.SetActive(true);
            activeHackerSlotBtns.AddRange(software3Slots);
            break;
        }

        HackerMod uplink = hackerLoadout.GetUplinkMod();

        switch (uplink.GetCurrentLevelSlotCount())
        {
        case 1:
            chipset1SlotHolder.SetActive(true);
            chipset2SlotHolder.SetActive(false);
            chipset3SlotHolder.SetActive(false);
            activeHackerSlotBtns.AddRange(chipset1Slots);
            break;

        case 2:
            chipset1SlotHolder.SetActive(false);
            chipset2SlotHolder.SetActive(true);
            chipset3SlotHolder.SetActive(false);
            activeHackerSlotBtns.AddRange(chipset2Slots);
            break;

        case 3:
            chipset1SlotHolder.SetActive(false);
            chipset2SlotHolder.SetActive(false);
            chipset3SlotHolder.SetActive(true);
            activeHackerSlotBtns.AddRange(chipset3Slots);
            break;
        }

        foreach (LoadoutSlotBtn button in activeHackerSlotBtns)
        {
            button.SetupButton();
        }
    }