public PossibleContract(double prob, string asteroid, CelestialBody orbiting) { probability = prob; this.asteroid = asteroid; this.body = orbiting; expectedDataType = ImpactScienceData.DataTypes.Asteroid; }
public PossibleContract(double prob, CelestialBody bod, double energy) { probability = prob; body = bod; this.energy = energy; expectedDataType = ImpactScienceData.DataTypes.Seismic; }
public PossibleContract(double prob, CelestialBody bod, string biome, float latitude) { probability = prob; body = bod; this.biome = biome; this.latitude = latitude; expectedDataType = ImpactScienceData.DataTypes.Spectral; }
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; } } }