Beispiel #1
0
        public ViewSummaryRow(string summaryText, int modPO, int modSc)
        {
            mainLabel = new ViewLabel(summaryText);
            mainLabel.setRelativeTo(this);
            mainLabel.setLeft(10);
            mainLabel.setTop(0);
            mainLabel.setColor(Color.white);
            mainLabel.setHeight(20);
            mainLabel.setWidth(300);

            if (modPO != 0)
            {
                poLabel = new ViewLabel("PO: " + modPO);
                poLabel.setRelativeTo(this);
                poLabel.setLeft(310);
                poLabel.setTop(0);
                poLabel.setColor(Color.white);
                poLabel.setHeight(20);
                poLabel.setWidth(100);
            }

            if (modSc != 0)
            {
                scLabel = new ViewLabel("SC: " + modSc);
                scLabel.setRelativeTo(this);
                scLabel.setLeft(410);
                scLabel.setTop(0);
                scLabel.setColor(Color.white);
                scLabel.setHeight(20);
                scLabel.setWidth(100);
            }
        }
        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);
            }
        }
        public static void drawItem(BaseReport Base, ViewScroll parent, int offset)
        {
            int boxHeight = 110;

            ViewBox Box = new ViewBox();

            Box.setRelativeTo(parent);
            Box.setWidth(parent.getWidth() - 20);
            Box.setHeight(boxHeight);
            Box.setLeft(0);
            Box.setTop((boxHeight + 10) * offset);
            Box.setColor(Color.white);
            parent.Components.Add(Box);

            string    label     = "[" + Base.name + " is Landed At " + Base.entity + "]";
            ViewLabel BaseLabel = new ViewLabel(label);

            BaseLabel.setRelativeTo(Box);
            BaseLabel.setTop(5);
            BaseLabel.setLeft(5);
            BaseLabel.setHeight(15);
            BaseLabel.setPercentWidth(100);
            BaseLabel.setColor(Color.green);
            parent.Components.Add(BaseLabel);

            ViewLabel FuelLabel = new ViewLabel("Fuel: " + Base.fuel);

            FuelLabel.setRelativeTo(Box);
            FuelLabel.setTop(25);
            FuelLabel.setLeft(5);
            FuelLabel.setHeight(15);
            FuelLabel.setWidth(150);
            FuelLabel.setColor(Color.white);
            parent.Components.Add(FuelLabel);

            ViewLabel OreLabel = new ViewLabel("Ore: " + Base.ore);

            OreLabel.setRelativeTo(Box);
            OreLabel.setTop(45);
            OreLabel.setLeft(5);
            OreLabel.setHeight(20);
            OreLabel.setWidth(150);
            OreLabel.setColor(Color.white);
            parent.Components.Add(OreLabel);

            ViewLabel CrewLabel = new ViewLabel("Crew: " + Base.crew);

            CrewLabel.setRelativeTo(Box);
            CrewLabel.setTop(65);
            CrewLabel.setLeft(5);
            CrewLabel.setHeight(20);
            CrewLabel.setWidth(150);
            CrewLabel.setColor(Color.white);
            parent.Components.Add(CrewLabel);

            ViewLabel CrewCapacityLabel = new ViewLabel("Crew Capacity: " + Base.crewCapacity);

            CrewCapacityLabel.setRelativeTo(Box);
            CrewCapacityLabel.setTop(85);
            CrewCapacityLabel.setLeft(5);
            CrewCapacityLabel.setHeight(20);
            CrewCapacityLabel.setWidth(150);
            CrewCapacityLabel.setColor(Color.white);
            parent.Components.Add(CrewCapacityLabel);

            ViewLabel DockingPortsLabel = new ViewLabel("Docking Ports: " + Base.dockingPorts);

            DockingPortsLabel.setRelativeTo(Box);
            DockingPortsLabel.setTop(25);
            DockingPortsLabel.setLeft(155);
            DockingPortsLabel.setHeight(15);
            DockingPortsLabel.setWidth(150);
            DockingPortsLabel.setColor(Color.white);
            parent.Components.Add(DockingPortsLabel);

            ViewLabel DockedVesselsLabel = new ViewLabel("Docked Vessels: " + Base.dockedVessels);

            DockedVesselsLabel.setRelativeTo(Box);
            DockedVesselsLabel.setTop(45);
            DockedVesselsLabel.setLeft(155);
            DockedVesselsLabel.setHeight(15);
            DockedVesselsLabel.setWidth(150);
            DockedVesselsLabel.setColor(Color.white);
            parent.Components.Add(DockedVesselsLabel);

            ViewLabel ScienceLabLabel = new ViewLabel("Science Lab: " + Base.scienceLab);

            ScienceLabLabel.setRelativeTo(Box);
            ScienceLabLabel.setTop(65);
            ScienceLabLabel.setLeft(155);
            ScienceLabLabel.setHeight(15);
            ScienceLabLabel.setWidth(150);
            ScienceLabLabel.setColor(Color.white);
            parent.Components.Add(ScienceLabLabel);

            ViewLabel HasDrillLabel = new ViewLabel("Has Drill: " + Base.drill);

            HasDrillLabel.setRelativeTo(Box);
            HasDrillLabel.setTop(85);
            HasDrillLabel.setLeft(155);
            HasDrillLabel.setHeight(15);
            HasDrillLabel.setWidth(150);
            HasDrillLabel.setColor(Color.white);
            parent.Components.Add(HasDrillLabel);

            ViewLabel SCLabel = new ViewLabel("PO: " + Base.po);

            SCLabel.setRelativeTo(Box);
            SCLabel.setTop(25);
            SCLabel.setLeft(310);
            SCLabel.setHeight(15);
            SCLabel.setWidth(150);
            SCLabel.setColor(Color.white);
            parent.Components.Add(SCLabel);

            ViewLabel POLabel = new ViewLabel("SC: " + Base.sc);

            POLabel.setRelativeTo(Box);
            POLabel.setTop(45);
            POLabel.setLeft(310);
            POLabel.setHeight(15);
            POLabel.setWidth(150);
            POLabel.setColor(Color.white);
            parent.Components.Add(POLabel);
        }