예제 #1
0
        public static Vessel[] GetMiningRigs()
        {
            List <Vessel> ReturnVessels = new List <Vessel>();

            Vessel[] MiningRigs = VesselHelper.GetVesselsWithModuleAliases(new string[] {
                "Drill"
            });

            for (var i = 0; i < MiningRigs.Length; i++)
            {
                Vessel MiningRig = MiningRigs[i];
                if ((MiningRig.Landed || OnAsteroid(MiningRig)) &&
                    MiningRig.vesselType != VesselType.Station &&
                    MiningRig.vesselType != VesselType.Base &&
                    MiningRig.landedAt != SpaceCenter.Instance.cb.GetName() &&
                    VesselHelper.HasEnergy(MiningRig) &&
                    VesselHelper.GeneratesEnergy(MiningRig) &&
                    VesselHelper.HasCommunication(MiningRig))
                {
                    ReturnVessels.Add(MiningRig);
                }
            }

            return(ReturnVessels.ToArray());
        }
예제 #2
0
        public static Vessel[] GetLandedScienceStations()
        {
            List <Vessel> ReturnVessels = new List <Vessel>();

            Vessel[] ScienceLabs = VesselHelper.GetVesselsWithModuleAliases(new string[] {
                "ScienceLab"
            });

            for (var i = 0; i < ScienceLabs.Length; i++)
            {
                Vessel ScienceLab = ScienceLabs[i];

                if (VesselHelper.HasCrew(ScienceLab) &&
                    ScienceLab.Landed &&
                    ScienceLab.vesselType != VesselType.Station &&
                    ScienceLab.vesselType != VesselType.Base &&
                    ScienceLab.landedAt != SpaceCenter.Instance.cb.GetName() &&
                    VesselHelper.HasEnergy(ScienceLab) &&
                    VesselHelper.GeneratesEnergy(ScienceLab) &&
                    VesselHelper.HasCommunication(ScienceLab))
                {
                    ReturnVessels.Add(ScienceLab);
                }
            }

            return(ReturnVessels.ToArray());
        }
예제 #3
0
        public static Vessel[] GetRovers()
        {
            List <Vessel> ReturnVessels = new List <Vessel>();

            Vessel[] Rovers = (Vessel[])FlightGlobals.Vessels.ToArray();

            for (var i = 0; i < Rovers.Length; i++)
            {
                Vessel Rover = Rovers[i];
                if (Rover.vesselType == VesselType.Rover)
                {
                    if (Rover.Landed && Rover.landedAt != SpaceCenter.Instance.cb.GetName() &&
                        VesselHelper.HasEnergy(Rover) &&
                        VesselHelper.WorkingWheels(Rover))
                    {
                        ReturnVessels.Add(Rover);
                    }
                }
            }

            return(ReturnVessels.ToArray());
        }
예제 #4
0
        public static bool QualifiedStranded(ProtoCrewMember Kerb)
        {
            Vessel Vsl = GetVessel(Kerb);

            if (Vsl != null &&
                Vsl.protoVessel.vesselType != VesselType.Base &&
                Vsl.protoVessel.vesselType != VesselType.Rover &&
                Vsl.protoVessel.vesselType != VesselType.Station)
            {
                if (!VesselHelper.HasLiquidFuel(Vsl) || !VesselHelper.HasEnergy(Vsl))
                {
                    if (!VesselHelper.VesselHasModuleAlias(Vsl, "ScienceLab"))
                    {
                        if (!VesselHelper.VesselHasModuleAlias(Vsl, "Drill"))
                        {
                            return(true);
                        }
                    }
                }
            }

            return(false);
        }
예제 #5
0
        public static Vessel[] GetBases()
        {
            List <Vessel> ReturnVessels = new List <Vessel>();

            Vessel[] Bases = (Vessel[])FlightGlobals.Vessels.ToArray();

            for (var i = 0; i < Bases.Length; i++)
            {
                Vessel Base = Bases[i];
                if (Base.vesselType == VesselType.Base)
                {
                    if (Base.Landed && Base.landedAt != SpaceCenter.Instance.cb.GetName() &&
                        VesselHelper.HasEnergy(Base) &&
                        VesselHelper.GeneratesEnergy(Base) &&
                        VesselHelper.HasCommunication(Base))
                    {
                        ReturnVessels.Add(Base);
                    }
                }
            }

            return(ReturnVessels.ToArray());
        }