Esempio n. 1
0
 public PossibleContract(double prob, string asteroid, CelestialBody orbiting)
 {
     probability      = prob;
     this.asteroid    = asteroid;
     this.body        = orbiting;
     expectedDataType = ImpactScienceData.DataTypes.Asteroid;
 }
Esempio n. 2
0
 public PossibleContract(double prob, CelestialBody bod, double energy)
 {
     probability      = prob;
     body             = bod;
     this.energy      = energy;
     expectedDataType = ImpactScienceData.DataTypes.Seismic;
 }
Esempio n. 3
0
 public PossibleContract(double prob, CelestialBody bod, string biome, float latitude)
 {
     probability      = prob;
     body             = bod;
     this.biome       = biome;
     this.latitude    = latitude;
     expectedDataType = ImpactScienceData.DataTypes.Spectral;
 }
Esempio n. 4
0
 public PossibleContract(ConfigNode node)
 {
     if (node.HasValue("BodyName"))
     {
         String bodyName = node.GetValue("BodyName");
         body = FlightGlobals.Bodies.Find(b => b.name == bodyName);
     }
     if (node.HasValue("Energy"))
     {
         energy = Double.Parse(node.GetValue("Energy"));
     }
     if (node.HasValue("Biome"))
     {
         biome = node.GetValue("Biome");
     }
     if (node.HasValue("Latitude"))
     {
         latitude = float.Parse(node.GetValue("Latitude"));
     }
     if (node.HasValue("Asteroid"))
     {
         asteroid = node.GetValue("Asteroid");
         if (body == null)
         {
             //legacy contract without asteroid body specified
             Vessel ast = FlightGlobals.Vessels.Where(v => v.GetName() == asteroid).Single();
             body = ast.orbit.referenceBody;
         }
     }
     if (node.HasValue(ImpactScienceData.DataTypeName))
     {
         expectedDataType = (ImpactScienceData.DataTypes)
                            Enum.Parse(typeof(ImpactScienceData.DataTypes),
                                       node.GetValue(ImpactScienceData.DataTypeName));
     }
     else
     {
         //load up legacy contracts which didn't save datatype
         if (biome != null || latitude > 0)
         {
             expectedDataType = ImpactScienceData.DataTypes.Spectral;
         }
         else if (asteroid != null)
         {
             expectedDataType = ImpactScienceData.DataTypes.Asteroid;
         }
         else
         {
             expectedDataType = ImpactScienceData.DataTypes.Seismic;
         }
     }
 }