public void draw(View Vw, ViewWindow Window, Review review)
        {
            Window.title = "Bases";
            InstanceData GameInstance = StateFundingGlobal.fetch.GameInstance;

            if (GameInstance == null)
            {
                Log.Error("StateFundingHubBasesView.draw, Inst is null");
                return;
            }

            string Description = "Below is a list of existing Bases. Vessels that are Bases should be labeled as " +
                                 "such, be landed on a body other than the home planet, and be able to generate power. Bases increase State Confidence " +
                                 "as well as Public Opinion. Bases are scored by the following criteria: Total Fuel (SC), Total Ore (SC), Crew (PO), Crew Capacity " +
                                 "(SC), Docking Port Count (SC), Docked Vessels (PO), if it has a science lab (SC/PO), and if it has a drill (SC/PO).";

            ViewLabel DescriptionLabel = new ViewLabel(Description);

            DescriptionLabel.setRelativeTo(Window);
            DescriptionLabel.setLeft(140);
            DescriptionLabel.setTop(20);
            DescriptionLabel.setColor(Color.white);
            DescriptionLabel.setHeight(100);
            DescriptionLabel.setWidth(Window.getWidth() - 140);

            Vw.addComponent(DescriptionLabel);

            ViewLabel TotalBases = new ViewLabel("Total Bases: " + review.variables.Bases.Length);

            TotalBases.setRelativeTo(Window);
            TotalBases.setLeft(140);
            TotalBases.setTop(130);
            TotalBases.setColor(Color.white);
            TotalBases.setHeight(30);
            TotalBases.setWidth(Window.getWidth() - 140);

            Vw.addComponent(TotalBases);

            ViewScroll BasesScroll = new ViewScroll();

            BasesScroll.setRelativeTo(Window);
            BasesScroll.setWidth(Window.getWidth() - 140);
            BasesScroll.setHeight(Window.getHeight() - 160);
            BasesScroll.setLeft(140);
            BasesScroll.setTop(150);

            Vw.addComponent(BasesScroll);

            BaseReport[] Bases = review.variables.Bases;

            for (int i = 0; i < Bases.Length; i++)
            {
                drawItem(Bases[i], BasesScroll, i);
            }
        }
        public void draw(View Vw, ViewWindow Window, Review review)
        {
            Window.title = "Kerbals";

            InstanceData GameInstance = StateFundingGlobal.fetch.GameInstance;

            if (GameInstance == null)
            {
                Log.Error("StateFundingHubKerbalsView.draw, Inst is null");
                return;
            }

            string Description = "You Love Kerbals, I Love Kerbals, Kerbals Love Kerbals. Just one of those facts of life. " +
                                 "So it goes without saying, having Kerbals actively on missions increases Public Opinion. " +
                                 "The more Kerbals you have in flight the more Public Opinion you will garner, but be careful, " +
                                 "a stranded Kerbal is as bad as a dead Kerbal and will hurt public opinion until they are " +
                                 "rescued. A qualified \"Stranded Kerbal\" is one that is in a vessel without fuel/energy, a science lab, " +
                                 "or a mining rig. They are floating without reason to be there. A kerbal will not be considered stranded unless it's " +
                                 "been on the current mission for at least 2 years.";

            ViewLabel DescriptionLabel = new ViewLabel(Description);

            DescriptionLabel.setRelativeTo(Window);
            DescriptionLabel.setLeft(140);
            DescriptionLabel.setTop(20);
            DescriptionLabel.setColor(Color.white);
            DescriptionLabel.setHeight(100);
            DescriptionLabel.setWidth(Window.getWidth() - 140);

            Vw.addComponent(DescriptionLabel);

            ViewLabel ActiveKerbals = new ViewLabel("Active Kerbals: " + review.variables.activeKerbals + ". Stranded Kerbals: " + review.variables.strandedKerbals + ".");

            ActiveKerbals.setRelativeTo(Window);
            ActiveKerbals.setLeft(140);
            ActiveKerbals.setTop(130);
            ActiveKerbals.setColor(Color.white);
            ActiveKerbals.setHeight(30);
            ActiveKerbals.setWidth(Window.getWidth() - 140);

            Vw.addComponent(ActiveKerbals);

            ViewScroll KerbalsScroll = new ViewScroll();

            KerbalsScroll.setRelativeTo(Window);
            KerbalsScroll.setWidth(Window.getWidth() - 140);
            KerbalsScroll.setHeight(Window.getHeight() - 160);
            KerbalsScroll.setLeft(140);
            KerbalsScroll.setTop(150);

            Vw.addComponent(KerbalsScroll);

            ProtoCrewMember[] Kerbals = KerbalHelper.GetKerbals();

            int labelHeight = 20;

            for (int i = 0; i < Kerbals.Length; i++)
            {
                ProtoCrewMember Kerb = Kerbals[i];

                string state = "Active";
                Color  color = Color.green;
                if (KerbalHelper.IsStranded(Kerb))
                {
                    state = "Stranded";
                    color = Color.white;
                }
                else if (KerbalHelper.QualifiedStranded(Kerb))
                {
                    state = "Active [Will be Stranded In " + KerbalHelper.TimeToStranded(Kerb) + " Days!]";
                    color = Color.yellow;
                }

                string label = Kerb.name + " (" + state + ")";

                ViewLabel KerbalLabel = new ViewLabel(label);
                KerbalLabel.setRelativeTo(KerbalsScroll);
                KerbalLabel.setTop(labelHeight + (labelHeight + 5) * i);
                KerbalLabel.setLeft(0);
                KerbalLabel.setHeight(labelHeight);
                KerbalLabel.setWidth(KerbalsScroll.getWidth() - 20);
                KerbalLabel.setColor(color);
                KerbalsScroll.Components.Add(KerbalLabel);
            }
        }