Ejemplo n.º 1
0
        private void UpdateSpaceStations()
        {
            Debug.Log("Updating Space Stations");

            Instance GameInstance = StateFundingGlobal.fetch.GameInstance;

            Vessel[] SpcStations = VesselHelper.GetSpaceStations();
            SpaceStations = new SpaceStationReport[SpcStations.Length];

            for (int i = 0; i < SpcStations.Length; i++)
            {
                Vessel SpcStation = SpcStations [i];

                SpaceStationReport SpcStationReport = new SpaceStationReport();
                SpcStationReport.name          = SpcStation.vesselName;
                SpcStationReport.crew          = VesselHelper.GetCrew(SpcStation).Length;
                SpcStationReport.crewCapacity  = VesselHelper.GetCrewCapactiy(SpcStation);
                SpcStationReport.dockedVessels = VesselHelper.GetDockedVesselsCount(SpcStation);
                SpcStationReport.dockingPorts  = VesselHelper.GetDockingPorts(SpcStation).Length;
                SpcStationReport.drill         = VesselHelper.VesselHasModuleAlias(SpcStation, "Drill");
                SpcStationReport.scienceLab    = VesselHelper.VesselHasModuleAlias(SpcStation, "ScienceLab");
                SpcStationReport.fuel          = VesselHelper.GetResourceCount(SpcStation, "LiquidFuel");
                SpcStationReport.ore           = VesselHelper.GetResourceCount(SpcStation, "Ore");
                SpcStationReport.onAstroid     = VesselHelper.OnAstroid(SpcStation);

                if (SpcStation.Landed)
                {
                    SpcStationReport.entity = SpcStation.landedAt;
                }
                else
                {
                    SpcStationReport.entity = SpcStation.GetOrbit().referenceBody.GetName();
                }

                SpcStationReport.po = 0;
                SpcStationReport.sc = 0;

                SpcStationReport.po += (int)(5 * SpcStationReport.crew * GameInstance.Gov.poModifier);
                SpcStationReport.po += (int)(5 * SpcStationReport.dockedVessels * GameInstance.Gov.poModifier);

                if (SpcStationReport.onAstroid)
                {
                    SpcStationReport.po += (int)(30 * GameInstance.Gov.poModifier);

                    if (SpcStationReport.drill)
                    {
                        SpcStationReport.po += (int)(10 * GameInstance.Gov.poModifier);
                        SpcStationReport.sc += (int)(10 * GameInstance.Gov.poModifier);
                    }
                }

                SpcStationReport.sc += (int)(2 * SpcStationReport.crewCapacity * GameInstance.Gov.scModifier);
                SpcStationReport.sc += (int)(SpcStationReport.fuel / 200f * GameInstance.Gov.scModifier);
                SpcStationReport.sc += (int)(SpcStationReport.ore / 200f * GameInstance.Gov.scModifier);
                SpcStationReport.sc += (int)(2 * SpcStationReport.dockingPorts * GameInstance.Gov.scModifier);
                SpcStationReport.sc += (int)(2 * SpcStationReport.crewCapacity * GameInstance.Gov.scModifier);

                if (SpcStationReport.scienceLab)
                {
                    SpcStationReport.po += (int)(10 * GameInstance.Gov.poModifier);
                    SpcStationReport.sc += (int)(10 * GameInstance.Gov.poModifier);
                }

                SpaceStations [i] = SpcStationReport;
            }
        }