public void setHand(ArrayList<Card> hand) {
        int i = 0;
        while (i < hand.size()) {
            ((CardComponent)this.getSubComponent(i)).linkCard(hand.get(i));
            this.getSubComponent(i).setColor(this.getTrueColor(), false);

            i++;
        }
        while (i < this.getNumSubComponents()) {
            this.getSubComponent(i).setVisible(false);
            this.getSubComponent(i).setActive(false);

            i++;
        }

        this.setNumOrbitComponents(hand.size());

        this.needsAligned();

        for (int c = 0; c < this.getNumOrbitComponents(); c++) {
            this.getSubComponent(c).setLocationC();
            this.getSubComponent(c).trackTarget(this.getSlot(c));
            this.getSubComponent(c).getTracker().setTempPath(new LineTrackerPath());
            this.getSlot(c).unSocket();
            this.getSubComponent(c).animateColor(new AlphaColorAnimation(1000, Animation.PACE_LINEAR, false, this.getSubComponent(c).getColor(), 0, 1, true));
        }
    }