public List<EDStar> GetAll(string scope) { List<EDStar> listObjects = new List<EDStar>(); string query = ApiNamespace + "/stars"; if (!String.IsNullOrEmpty(scope)) query = query + "?" + scope; var response = RequestGet(query); var json = response.Body; JArray jArray = null; JObject jObject = null; if (json != null && json.Length > 5) jObject = (JObject)JObject.Parse(json); if (jObject == null) return listObjects; jArray = (JArray)jObject["data"]; foreach (JObject jo in jArray) { EDStar obj = new EDStar(); if (obj.ParseJson((JObject)jo)) listObjects.Add(obj); } return listObjects; }
public override bool ToCSV(string filename) { try { using (StreamWriter writer = new StreamWriter(filename)) { if (IncludeHeader) { writer.Write("Time" + delimiter); writer.Write("System" + delimiter); writer.Write("Star type" + delimiter); writer.Write("Planet type" + delimiter); writer.WriteLine(); } foreach (HistoryEntry he in data) { JournalSellExplorationData jsed = he.journalEntry as JournalSellExplorationData; if (jsed == null || jsed.Discovered == null) { continue; } foreach (String system in jsed.Discovered) { writer.Write(MakeValueCsvFriendly(jsed.EventTimeLocal)); writer.Write(MakeValueCsvFriendly(system)); EDStar star = EDStar.Unknown; EDPlanet planet = EDPlanet.Unknown; foreach (HistoryEntry scanhe in scans) { JournalScan scan = scanhe.journalEntry as JournalScan; if (scan.BodyName.Equals(system, StringComparison.OrdinalIgnoreCase)) { star = scan.StarTypeID; planet = scan.PlanetTypeID; break; } } writer.Write(MakeValueCsvFriendly((star != EDStar.Unknown) ? Enum.GetName(typeof(EDStar), star) : "")); writer.Write(MakeValueCsvFriendly((planet != EDPlanet.Unknown) ? Enum.GetName(typeof(EDPlanet), planet) : "", false)); writer.WriteLine(); } } } return(true); } catch (IOException) { ExtendedControls.MessageBoxTheme.Show(String.Format("Is file {0} open?", filename), TITLE, MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } }
public static string StarTypeNameShorter(EDStar type) { if (StarEnumToNameLookup.TryGetValue(type, out var name)) { return(name); } else { return(type.ToString().Replace("_", " ")); } }
public List <EDStar> GetAll(string scope) { List <EDStar> listObjects = new List <EDStar>(); string query = ApiNamespace + "/stars"; if (!String.IsNullOrEmpty(scope)) { query = query + "?" + scope; } var response = RequestGet(query); var json = response.Body; JArray jArray = null; JObject jObject = null; if (json != null && json.Length > 5) { jObject = (JObject)JObject.Parse(json); } if (jObject == null) { return(listObjects); } jArray = (JArray)jObject["data"]; foreach (JObject jo in jArray) { EDStar obj = new EDStar(); if (obj.ParseJson((JObject)jo)) { listObjects.Add(obj); } } return(listObjects); }
private void buttonExtExcel_Click(object sender, EventArgs e) { Forms.ExportForm frm = new Forms.ExportForm(); frm.Init(new string[] { "All", "Stars only", "Planets only", //2 "Exploration List Stars", //3 "Exploration List Planets", //4 "Sold Exploration Data", // 5 }); if (frm.ShowDialog(FindForm()) == DialogResult.OK) { BaseUtils.CSVWrite csv = new BaseUtils.CSVWrite(); csv.SetCSVDelimiter(frm.Comma); try { using (System.IO.StreamWriter writer = new System.IO.StreamWriter(frm.Path)) { if (frm.SelectedIndex == 5) { int count; List <HistoryEntry> data = HistoryList.FilterByJournalEvent(discoveryform.history.ToList(), "Sell Exploration Data", out count); data = (from he in data where he.EventTimeLocal >= frm.StartTime && he.EventTimeLocal <= frm.EndTime orderby he.EventTimeUTC descending select he).ToList(); List <HistoryEntry> scans = HistoryList.FilterByJournalEvent(discoveryform.history.ToList(), "Scan", out count); if (frm.IncludeHeader) { writer.Write(csv.Format("Time")); writer.Write(csv.Format("System")); writer.Write(csv.Format("Star type")); writer.Write(csv.Format("Planet type", false)); writer.WriteLine(); } foreach (HistoryEntry he in data) { JournalSellExplorationData jsed = he.journalEntry as JournalSellExplorationData; if (jsed == null || jsed.Discovered == null) { continue; } foreach (String system in jsed.Discovered) { writer.Write(csv.Format(jsed.EventTimeLocal)); writer.Write(csv.Format(system)); EDStar star = EDStar.Unknown; EDPlanet planet = EDPlanet.Unknown_Body_Type; foreach (HistoryEntry scanhe in scans) { JournalScan scan = scanhe.journalEntry as JournalScan; if (scan.BodyName.Equals(system, StringComparison.OrdinalIgnoreCase)) { star = scan.StarTypeID; planet = scan.PlanetTypeID; break; } } writer.Write(csv.Format((star != EDStar.Unknown) ? Enum.GetName(typeof(EDStar), star) : "")); writer.Write(csv.Format((planet != EDPlanet.Unknown_Body_Type) ? Enum.GetName(typeof(EDPlanet), planet) : "", false)); writer.WriteLine(); } } } else { List <JournalScan> scans = null; if (frm.SelectedIndex < 3) { var entries = JournalEntry.GetByEventType(JournalTypeEnum.Scan, EDCommander.CurrentCmdrID, frm.StartTime, frm.EndTime); scans = entries.ConvertAll(x => (JournalScan)x); } else { ExplorationSetClass currentExplorationSet = new ExplorationSetClass(); string file = currentExplorationSet.DialogLoad(FindForm()); if (file != null) { scans = new List <JournalScan>(); foreach (string system in currentExplorationSet.Systems) { ISystem sys = SystemCache.FindSystem(system); if (sys != null) { List <JournalScan> sysscans = EDSMClass.GetBodiesList(sys.EDSMID); if (sysscans != null) { scans.AddRange(sysscans); } } } } else { return; } } bool ShowStars = frm.SelectedIndex < 2 || frm.SelectedIndex == 3; bool ShowPlanets = frm.SelectedIndex == 0 || frm.SelectedIndex == 2 || frm.SelectedIndex == 4; List <JournalSAAScanComplete> mappings = ShowPlanets ? JournalEntry.GetByEventType(JournalTypeEnum.SAAScanComplete, EDCommander.CurrentCmdrID, frm.StartTime, frm.EndTime) .ConvertAll(x => (JournalSAAScanComplete)x) : null; if (frm.IncludeHeader) { // Write header writer.Write(csv.Format("Time")); writer.Write(csv.Format("BodyName")); writer.Write(csv.Format("Estimated Value")); writer.Write(csv.Format("DistanceFromArrivalLS")); writer.Write(csv.Format("WasMapped")); writer.Write(csv.Format("WasDiscovered")); if (ShowStars) { writer.Write(csv.Format("StarType")); writer.Write(csv.Format("StellarMass")); writer.Write(csv.Format("AbsoluteMagnitude")); writer.Write(csv.Format("Age MY")); writer.Write(csv.Format("Luminosity")); } writer.Write(csv.Format("Radius")); writer.Write(csv.Format("RotationPeriod")); writer.Write(csv.Format("SurfaceTemperature")); if (ShowPlanets) { writer.Write(csv.Format("TidalLock")); writer.Write(csv.Format("TerraformState")); writer.Write(csv.Format("PlanetClass")); writer.Write(csv.Format("Atmosphere")); writer.Write(csv.Format("Iron")); writer.Write(csv.Format("Silicates")); writer.Write(csv.Format("SulphurDioxide")); writer.Write(csv.Format("CarbonDioxide")); writer.Write(csv.Format("Nitrogen")); writer.Write(csv.Format("Oxygen")); writer.Write(csv.Format("Water")); writer.Write(csv.Format("Argon")); writer.Write(csv.Format("Ammonia")); writer.Write(csv.Format("Methane")); writer.Write(csv.Format("Hydrogen")); writer.Write(csv.Format("Helium")); writer.Write(csv.Format("Volcanism")); writer.Write(csv.Format("SurfaceGravity")); writer.Write(csv.Format("SurfacePressure")); writer.Write(csv.Format("Landable")); writer.Write(csv.Format("EarthMasses")); writer.Write(csv.Format("IcePercent")); writer.Write(csv.Format("RockPercent")); writer.Write(csv.Format("MetalPercent")); } // Common orbital param writer.Write(csv.Format("SemiMajorAxis")); writer.Write(csv.Format("Eccentricity")); writer.Write(csv.Format("OrbitalInclination")); writer.Write(csv.Format("Periapsis")); writer.Write(csv.Format("OrbitalPeriod")); writer.Write(csv.Format("AxialTilt")); if (ShowPlanets) { writer.Write(csv.Format("Carbon")); writer.Write(csv.Format("Iron")); writer.Write(csv.Format("Nickel")); writer.Write(csv.Format("Phosphorus")); writer.Write(csv.Format("Sulphur")); writer.Write(csv.Format("Arsenic")); writer.Write(csv.Format("Chromium")); writer.Write(csv.Format("Germanium")); writer.Write(csv.Format("Manganese")); writer.Write(csv.Format("Selenium")); writer.Write(csv.Format("Vanadium")); writer.Write(csv.Format("Zinc")); writer.Write(csv.Format("Zirconium")); writer.Write(csv.Format("Cadmium")); writer.Write(csv.Format("Mercury")); writer.Write(csv.Format("Molybdenum")); writer.Write(csv.Format("Niobium")); writer.Write(csv.Format("Tin")); writer.Write(csv.Format("Tungsten")); writer.Write(csv.Format("Antimony")); writer.Write(csv.Format("Polonium")); writer.Write(csv.Format("Ruthenium")); writer.Write(csv.Format("Technetium")); writer.Write(csv.Format("Tellurium")); writer.Write(csv.Format("Yttrium")); } writer.WriteLine(); } foreach (JournalScan je in scans) { JournalScan scan = je as JournalScan; if (ShowPlanets == true && !string.IsNullOrEmpty(scan.PlanetClass)) { var mapping = mappings?.FirstOrDefault(m => m.BodyID == scan.BodyID); if (mapping != null) { scan.SetMapped(true, mapping.ProbesUsed <= mapping.EfficiencyTarget); } } if (ShowPlanets == false) // Then only show stars. { if (String.IsNullOrEmpty(scan.StarType)) { continue; } } if (ShowStars == false) // Then only show planets { if (String.IsNullOrEmpty(scan.PlanetClass)) { continue; } } writer.Write(csv.Format(scan.EventTimeUTC)); writer.Write(csv.Format(scan.BodyName)); writer.Write(csv.Format(scan.EstimatedValue)); writer.Write(csv.Format(scan.DistanceFromArrivalLS)); writer.Write(csv.Format(scan.WasMapped)); writer.Write(csv.Format(scan.WasDiscovered)); if (ShowStars) { writer.Write(csv.Format(scan.StarType)); writer.Write(csv.Format((scan.nStellarMass.HasValue) ? scan.nStellarMass.Value : 0)); writer.Write(csv.Format((scan.nAbsoluteMagnitude.HasValue) ? scan.nAbsoluteMagnitude.Value : 0)); writer.Write(csv.Format((scan.nAge.HasValue) ? scan.nAge.Value : 0)); writer.Write(csv.Format(scan.Luminosity)); } writer.Write(csv.Format(scan.nRadius.HasValue ? scan.nRadius.Value : 0)); writer.Write(csv.Format(scan.nRotationPeriod.HasValue ? scan.nRotationPeriod.Value : 0)); writer.Write(csv.Format(scan.nSurfaceTemperature.HasValue ? scan.nSurfaceTemperature.Value : 0)); if (ShowPlanets) { writer.Write(csv.Format(scan.nTidalLock.HasValue ? scan.nTidalLock.Value : false)); writer.Write(csv.Format((scan.TerraformState != null) ? scan.TerraformState : "")); writer.Write(csv.Format((scan.PlanetClass != null) ? scan.PlanetClass : "")); writer.Write(csv.Format((scan.Atmosphere != null) ? scan.Atmosphere : "")); writer.Write(csv.Format(scan.GetAtmosphereComponent("Iron"))); writer.Write(csv.Format(scan.GetAtmosphereComponent("Silicates"))); writer.Write(csv.Format(scan.GetAtmosphereComponent("SulphurDioxide"))); writer.Write(csv.Format(scan.GetAtmosphereComponent("CarbonDioxide"))); writer.Write(csv.Format(scan.GetAtmosphereComponent("Nitrogen"))); writer.Write(csv.Format(scan.GetAtmosphereComponent("Oxygen"))); writer.Write(csv.Format(scan.GetAtmosphereComponent("Water"))); writer.Write(csv.Format(scan.GetAtmosphereComponent("Argon"))); writer.Write(csv.Format(scan.GetAtmosphereComponent("Ammonia"))); writer.Write(csv.Format(scan.GetAtmosphereComponent("Methane"))); writer.Write(csv.Format(scan.GetAtmosphereComponent("Hydrogen"))); writer.Write(csv.Format(scan.GetAtmosphereComponent("Helium"))); writer.Write(csv.Format((scan.Volcanism != null) ? scan.Volcanism : "")); writer.Write(csv.Format(scan.nSurfaceGravity.HasValue ? scan.nSurfaceGravity.Value : 0)); writer.Write(csv.Format(scan.nSurfacePressure.HasValue ? scan.nSurfacePressure.Value : 0)); writer.Write(csv.Format(scan.nLandable.HasValue ? scan.nLandable.Value : false)); writer.Write(csv.Format((scan.nMassEM.HasValue) ? scan.nMassEM.Value : 0)); writer.Write(csv.Format(scan.GetCompositionPercent("Ice"))); writer.Write(csv.Format(scan.GetCompositionPercent("Rock"))); writer.Write(csv.Format(scan.GetCompositionPercent("Metal"))); } // Common orbital param writer.Write(csv.Format(scan.nSemiMajorAxis.HasValue ? scan.nSemiMajorAxis.Value : 0)); writer.Write(csv.Format(scan.nEccentricity.HasValue ? scan.nEccentricity.Value : 0)); writer.Write(csv.Format(scan.nOrbitalInclination.HasValue ? scan.nOrbitalInclination.Value : 0)); writer.Write(csv.Format(scan.nPeriapsis.HasValue ? scan.nPeriapsis.Value : 0)); writer.Write(csv.Format(scan.nOrbitalPeriod.HasValue ? scan.nOrbitalPeriod.Value : 0)); writer.Write(csv.Format(scan.nAxialTilt.HasValue ? scan.nAxialTilt : null)); if (ShowPlanets) { writer.Write(csv.Format(scan.GetMaterial("Carbon"))); writer.Write(csv.Format(scan.GetMaterial("Iron"))); writer.Write(csv.Format(scan.GetMaterial("Nickel"))); writer.Write(csv.Format(scan.GetMaterial("Phosphorus"))); writer.Write(csv.Format(scan.GetMaterial("Sulphur"))); writer.Write(csv.Format(scan.GetMaterial("Arsenic"))); writer.Write(csv.Format(scan.GetMaterial("Chromium"))); writer.Write(csv.Format(scan.GetMaterial("Germanium"))); writer.Write(csv.Format(scan.GetMaterial("Manganese"))); writer.Write(csv.Format(scan.GetMaterial("Selenium"))); writer.Write(csv.Format(scan.GetMaterial("Vanadium"))); writer.Write(csv.Format(scan.GetMaterial("Zinc"))); writer.Write(csv.Format(scan.GetMaterial("Zirconium"))); writer.Write(csv.Format(scan.GetMaterial("Cadmium"))); writer.Write(csv.Format(scan.GetMaterial("Mercury"))); writer.Write(csv.Format(scan.GetMaterial("Molybdenum"))); writer.Write(csv.Format(scan.GetMaterial("Niobium"))); writer.Write(csv.Format(scan.GetMaterial("Tin"))); writer.Write(csv.Format(scan.GetMaterial("Tungsten"))); writer.Write(csv.Format(scan.GetMaterial("Antimony"))); writer.Write(csv.Format(scan.GetMaterial("Polonium"))); writer.Write(csv.Format(scan.GetMaterial("Ruthenium"))); writer.Write(csv.Format(scan.GetMaterial("Technetium"))); writer.Write(csv.Format(scan.GetMaterial("Tellurium"))); writer.Write(csv.Format(scan.GetMaterial("Yttrium"))); } writer.WriteLine(); } } writer.Close(); if (frm.AutoOpen) { System.Diagnostics.Process.Start(frm.Path); } } } catch { ExtendedControls.MessageBoxTheme.Show(FindForm(), "Failed to write to " + frm.Path, "Export Failed", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } }
private int EstimatedValueED22(bool isstar, EDStar st, bool isplanet, EDPlanet pl, bool terraformable, double?massstar, double?massem) { if (isstar) { switch (st) // http://elite-dangerous.wikia.com/wiki/Explorer { case EDStar.O: //low = 3677; //high = 4465; return(4170); case EDStar.B: //low = 2992; //high = 3456; return(3098); case EDStar.A: //low = 2938; //high = 2986; return(2950); case EDStar.F: //low = 2915; //high = 2957; return(2932); case EDStar.G: //low = 2912; //high = 2935; // also have a G8V return(2923); case EDStar.K: //low = 2898; //high = 2923; return(2911); case EDStar.M: //low = 2887; //high = 2905; return(2911); // dwarfs case EDStar.L: //low = 2884; //high = 2890; return(2887); case EDStar.T: //low = 2881; //high = 2885; return(2883); case EDStar.Y: //low = 2880; //high = 2882; return(2881); // proto stars case EDStar.AeBe: // Herbig // ?? //low = //high = 0; return(2500); case EDStar.TTS: //low = 2881; //high = 2922; return(2900); // wolf rayet case EDStar.W: case EDStar.WN: case EDStar.WNC: case EDStar.WC: case EDStar.WO: //low = //high = 7794; return(7794); // Carbon case EDStar.CS: case EDStar.C: case EDStar.CN: case EDStar.CJ: case EDStar.CHd: //low = //high = 2920; return(2920); case EDStar.MS: //seen in log case EDStar.S: // seen in log // ?? //low = //high = 0; return(2000); // white dwarf case EDStar.D: case EDStar.DA: case EDStar.DAB: case EDStar.DAO: case EDStar.DAZ: case EDStar.DAV: case EDStar.DB: case EDStar.DBZ: case EDStar.DBV: case EDStar.DO: case EDStar.DOV: case EDStar.DQ: case EDStar.DC: case EDStar.DCV: case EDStar.DX: //low = 25000; //high = 27000; return(26000); case EDStar.N: //low = 43276; //high = 44619; return(43441); case EDStar.H: //low = 44749; //high = 80305; return(61439); case EDStar.X: case EDStar.A_BlueWhiteSuperGiant: case EDStar.F_WhiteSuperGiant: case EDStar.M_RedSuperGiant: case EDStar.M_RedGiant: case EDStar.K_OrangeGiant: case EDStar.RoguePlanet: default: //low = 0; //high = 0; return(2000); } } else // Planet { switch (pl) // http://elite-dangerous.wikia.com/wiki/Explorer { case EDPlanet.Icy_body: //low = 792; // (0.0001 EM) //high = 1720; // 89.17 return(933); // 0.04 case EDPlanet.Rocky_ice_body: //low = 792; // (0.0001 EM) //high = 1720; // 89.17 return(933); // 0.04 case EDPlanet.Rocky_body: if (terraformable) { //low = 36000; //high = 36500; return(37000); } else { //low = 792; // (0.0001 EM) //high = 1720; // 89.17 return(933); // 0.04 } case EDPlanet.Metal_rich_body: //low = 9145; // (0.0002 EM) //high = 14562; // (4.03 EM) return(12449); // 0.51 EM case EDPlanet.High_metal_content_body: if (terraformable) { //low = 36000; //high = 54000; return(42000); } else { //low = 4966; // (0.0015 EM) //high = 9632; // 31.52 EM return(6670); // 0.41 } case EDPlanet.Earthlike_body: //low = 65000; // 0.24 EM //high = 71885; // 196.60 EM return(67798); // 0.47 EM case EDPlanet.Water_world: //low = 26589; // (0.09 EM) //high = 43437; // (42.77 EM) return(30492); // (0.82 EM) case EDPlanet.Ammonia_world: //low = 37019; // 0.09 EM //high = 71885; //(196.60 EM) return(40322); // (0.41 EM) case EDPlanet.Sudarsky_class_I_gas_giant: //low = 2472; // (2.30 EM) //high = 4514; // (620.81 EM return(3400); // 62.93 EM case EDPlanet.Sudarsky_class_II_gas_giant: //low = 8110; // (5.37 EM) //high = 14618; // (949.98 EM) return(12319); // 260.84 EM case EDPlanet.Sudarsky_class_III_gas_giant: //low = 1368; // (10.16 EM) //high = 2731; // (2926 EM) return(2339); // 990.92 EM case EDPlanet.Sudarsky_class_IV_gas_giant: //low = 2739; //(2984 EM) //high = 2827; // (3697 EM) return(2782); // 3319 em case EDPlanet.Sudarsky_class_V_gas_giant: //low = 2225; // 688.2 EM //high = 2225; return(2225); case EDPlanet.Water_giant: case EDPlanet.Water_giant_with_life: case EDPlanet.Gas_giant_with_water_based_life: case EDPlanet.Gas_giant_with_ammonia_based_life: case EDPlanet.Helium_rich_gas_giant: case EDPlanet.Helium_gas_giant: //low = 0; //high = 0; return(2000); default: //low = 0; //high = 2000; return(0); } } }
public ScanEstimatedValues(DateTime utc, bool isstar, EDStar st, bool isplanet, EDPlanet pl, bool terraformable, double?massstar, double?massem) { // see https://forums.frontier.co.uk/showthread.php/232000-Exploration-value-formulae/ for detail if (utc < new DateTime(2017, 4, 11, 12, 0, 0, 0, DateTimeKind.Utc)) { EstimatedValueBase = EstimatedValueED22(isstar, st, isplanet, pl, terraformable, massstar, massem); return; } if (utc < new DateTime(2018, 12, 11, 9, 0, 0, DateTimeKind.Utc)) { EstimatedValueBase = EstimatedValue32(isstar, st, isplanet, pl, terraformable, massstar, massem); return; } // 3.3 onwards //System.Diagnostics.Debug.WriteLine("Scan calc " + mapped + " ef " + efficient + " Current " + EstimatedValue); double kValue; if (isstar) { switch (st) { // white dwarf case EDStar.D: case EDStar.DA: case EDStar.DAB: case EDStar.DAO: case EDStar.DAZ: case EDStar.DAV: case EDStar.DB: case EDStar.DBZ: case EDStar.DBV: case EDStar.DO: case EDStar.DOV: case EDStar.DQ: case EDStar.DC: case EDStar.DCV: case EDStar.DX: kValue = 14057; break; case EDStar.N: case EDStar.H: kValue = 22628; break; case EDStar.SuperMassiveBlackHole: // this is applying the same scaling to the 3.2 value as a normal black hole, not confirmed in game kValue = 33.5678; break; default: kValue = 1200; break; } EstimatedValueBase = (int)StarValue32And33(kValue, massstar.HasValue ? massstar.Value : 1.0); } else { EstimatedValueBase = 0; if (isplanet) //Asteroid belt is null { switch (pl) { case EDPlanet.Metal_rich_body: // CFT value is scaled same as WW/ELW from 3.2, not confirmed in game // They're like hen's teeth anyway.... kValue = 21790; if (terraformable) { kValue += 65631; } break; case EDPlanet.Ammonia_world: kValue = 96932; break; case EDPlanet.Sudarsky_class_I_gas_giant: kValue = 1656; break; case EDPlanet.Sudarsky_class_II_gas_giant: case EDPlanet.High_metal_content_body: kValue = 9654; if (terraformable) { kValue += 100677; } break; case EDPlanet.Water_world: kValue = 64831; if (terraformable) { kValue += 116295; } break; case EDPlanet.Earthlike_body: // Always terraformable so WW + bonus kValue = 64831 + 116295; break; default: kValue = 300; if (terraformable) { kValue += 93328; } break; } double mass = massem.HasValue ? massem.Value : 1.0; double effmapped = 1.25; double firstdiscovery = 2.6; double basevalue = PlanetValue33(kValue, mass); EstimatedValueBase = (int)basevalue; EstimatedValueFirstDiscovered = (int)(basevalue * firstdiscovery); EstimatedValueFirstDiscoveredFirstMapped = (int)(basevalue * firstdiscovery * 3.699622554); EstimatedValueFirstDiscoveredFirstMappedEfficiently = (int)(basevalue * firstdiscovery * 3.699622554 * effmapped); EstimatedValueFirstMapped = (int)(basevalue * 8.0956); EstimatedValueFirstMappedEfficiently = (int)(basevalue * 8.0956 * effmapped); EstimatedValueMapped = (int)(basevalue * 3.3333333333); EstimatedValueMappedEfficiently = (int)(basevalue * 3.3333333333 * effmapped); } } }
private int EstimatedValue32(bool isstar, EDStar st, bool isplanet, EDPlanet pl, bool terraformable, double?massstar, double?massem) { double kValue; double kBonus = 0; if (isstar) { switch (st) // http://elite-dangerous.wikia.com/wiki/Explorer { // white dwarf case EDStar.D: case EDStar.DA: case EDStar.DAB: case EDStar.DAO: case EDStar.DAZ: case EDStar.DAV: case EDStar.DB: case EDStar.DBZ: case EDStar.DBV: case EDStar.DO: case EDStar.DOV: case EDStar.DQ: case EDStar.DC: case EDStar.DCV: case EDStar.DX: kValue = 33737; break; case EDStar.N: case EDStar.H: kValue = 54309; break; case EDStar.SuperMassiveBlackHole: kValue = 80.5654; break; default: kValue = 2880; break; } return((int)StarValue32And33(kValue, massstar.HasValue ? massstar.Value : 1.0)); } else if (!isplanet) //Asteroid belt { return(0); } else // Planet { switch (pl) // http://elite-dangerous.wikia.com/wiki/Explorer { case EDPlanet.Metal_rich_body: kValue = 52292; if (terraformable) { kBonus = 245306; } break; case EDPlanet.High_metal_content_body: case EDPlanet.Sudarsky_class_II_gas_giant: kValue = 23168; if (terraformable) { kBonus = 241607; } break; case EDPlanet.Earthlike_body: kValue = 155581; kBonus = 279088; break; case EDPlanet.Water_world: kValue = 155581; if (terraformable) { kBonus = 279088; } break; case EDPlanet.Ammonia_world: kValue = 232619; break; case EDPlanet.Sudarsky_class_I_gas_giant: kValue = 3974; break; default: kValue = 720; if (terraformable) { kBonus = 223971; } break; } double mass = massem.HasValue ? massem.Value : 1.0; // some old entries don't have mass, so just presume 1 int val = (int)PlanetValueED32(kValue, mass); if (terraformable || pl == EDPlanet.Earthlike_body) { val += (int)PlanetValueED32(kBonus, mass); } return(val); } }
public static string StarName(EDStar id) { switch (id) // see journal, section 11.2 { case EDStar.O: return(string.Format("Luminous Hot Main Sequence {0} star".T(EDTx.Bodies_HMS), id.ToString())); case EDStar.B: // also have an B1V return(string.Format("Luminous Blue Main Sequence {0} star".T(EDTx.Bodies_BMS), id.ToString())); case EDStar.A: // also have an A3V.. return(string.Format("Bluish-White Main Sequence {0} star".T(EDTx.Bodies_BWMS), id.ToString())); case EDStar.F: return(string.Format("White Main Sequence {0} star".T(EDTx.Bodies_WMS), id.ToString())); case EDStar.G: // also have a G8V return(string.Format("Yellow Main Sequence {0} star".T(EDTx.Bodies_YMS), id.ToString())); case EDStar.K: // also have a K0V return(string.Format("Orange Main Sequence {0} star".T(EDTx.Bodies_OMS), id.ToString())); case EDStar.M: // also have a M1VA return(string.Format("Red Main Sequence {0} star".T(EDTx.Bodies_RMS), id.ToString())); // dwarfs case EDStar.L: return(string.Format("Dark Red Non Main Sequence {0} star".T(EDTx.Bodies_DRNS), id.ToString())); case EDStar.T: return(string.Format("Methane Dwarf star".T(EDTx.Bodies_MD))); case EDStar.Y: return(string.Format("Brown Dwarf star".T(EDTx.Bodies_BD))); // proto stars case EDStar.AeBe: // Herbig return("Herbig Ae/Be"); case EDStar.TTS: // seen in logs return("T Tauri"); // wolf rayet case EDStar.W: case EDStar.WN: case EDStar.WNC: case EDStar.WC: case EDStar.WO: return(string.Format("Wolf-Rayet {0} star".T(EDTx.Bodies_WR), id.ToString())); // Carbon case EDStar.CS: case EDStar.C: case EDStar.CN: case EDStar.CJ: case EDStar.CHd: return(string.Format("Carbon {0} star".T(EDTx.Bodies_C), id.ToString())); case EDStar.MS: //seen in log https://en.wikipedia.org/wiki/S-type_star return(string.Format("Intermediate low Zirconium Monoxide Type star".T(EDTx.Bodies_IZ))); case EDStar.S: // seen in log, data from http://elite-dangerous.wikia.com/wiki/Stars return(string.Format("Cool Giant Zirconium Monoxide rich Type star".T(EDTx.Bodies_CGZ))); // white dwarf case EDStar.D: case EDStar.DA: case EDStar.DAB: case EDStar.DAO: case EDStar.DAZ: case EDStar.DAV: case EDStar.DB: case EDStar.DBZ: case EDStar.DBV: case EDStar.DO: case EDStar.DOV: case EDStar.DQ: case EDStar.DC: case EDStar.DCV: case EDStar.DX: return(string.Format("White Dwarf {0} star".T(EDTx.Bodies_WD), id.ToString())); case EDStar.N: return("Neutron Star".T(EDTx.Bodies_NS)); case EDStar.H: return("Black Hole".T(EDTx.Bodies_BH)); case EDStar.X: // currently speculative, not confirmed with actual data... in journal return("Exotic".T(EDTx.Bodies_EX)); // Journal.. really? need evidence these actually are formatted like this. case EDStar.SuperMassiveBlackHole: return("Super Massive Black Hole".T(EDTx.Bodies_SMBH)); case EDStar.A_BlueWhiteSuperGiant: return("Blue White Super Giant".T(EDTx.Bodies_BSG)); case EDStar.F_WhiteSuperGiant: return("F White Super Giant".T(EDTx.Bodies_WSG)); case EDStar.M_RedSuperGiant: return("M Red Super Giant".T(EDTx.Bodies_MSR)); case EDStar.M_RedGiant: return("M Red Giant".T(EDTx.Bodies_MOG)); case EDStar.K_OrangeGiant: return("K Orange Giant".T(EDTx.Bodies_KOG)); case EDStar.RoguePlanet: return("Rogue Planet".T(EDTx.Bodies_RP)); default: return(string.Format("Class {0} star\n", id.ToString())); } }
public static System.Drawing.Image GetStarTypeImage(EDStar type) { return(StarTypeIcons[type]); }
public ResponseData Store(EDStar edobj) { dynamic jo = new JObject(); var joPost = new JObject { { "data", new JObject { { "type", "stars" }, { "attributes", new JObject { { "system-name", edobj.system }, { "updater", EDDiscoveryForm.EDDConfig.CurrentCommander.Name }, { "star", edobj.objectName }, { "spectral-class", edobj.Description }, { "spectral-subclass", edobj.subclass }, { "solar-mass", edobj.mass }, { "solar-radius", edobj.radius }, { "surface-temp", edobj.surfaceTemp }, { "star-age", edobj.star_age }, { "orbit-period", edobj.orbitPeriod }, { "arrival-point", edobj.arrivalPoint }, { "luminosity", edobj.luminosity }, { "notes", edobj.notes }, { "image-url", edobj.imageUrl } } } } } }; ResponseData response; if (edobj.id == 0) { response = RequestSecurePost(joPost.ToString(), $"{ApiNamespace}/stars"); if (response.StatusCode == HttpStatusCode.Created) { JObject jo2 = (JObject)JObject.Parse(response.Body); JObject obj = (JObject)jo2["data"]; edobj.id = obj["id"].Value <int>(); } else if ((int)response.StatusCode == 422) { var queryParams = $"system={jo.system}&star={jo.star}"; var response2 = RequestGet($"{ApiNamespace}/stars/?{queryParams}"); if (response2.StatusCode == HttpStatusCode.OK) { JObject jo2 = (JObject)JObject.Parse(response2.Body); JArray items = (JArray)jo2["data"]; if (items.Count > 0) { edobj.id = items[0]["id"].Value <int>(); JObject jData = (JObject)joPost["data"]; jData["id"] = edobj.id; response2 = RequestSecurePatch(joPost.ToString(), $"{ApiNamespace}/stars/" + edobj.id.ToString()); response = response2; } } } } else { response = RequestSecurePatch(joPost.ToString(), $"{ApiNamespace}/stars/" + edobj.id.ToString()); } return(response); }
public ResponseData Store(EDStar edobj) { dynamic jo = new JObject(); var joPost = new JObject { { "data", new JObject { { "type", "stars" }, { "attributes", new JObject { { "system-name", edobj.system }, { "updater", EDDiscoveryForm.EDDConfig.CurrentCommander.Name }, { "star", edobj.objectName }, { "spectral-class", edobj.Description }, { "spectral-subclass", edobj.subclass }, { "solar-mass", edobj.mass }, { "solar-radius", edobj.radius }, { "surface-temp", edobj.surfaceTemp }, { "star-age", edobj.star_age }, { "orbit-period", edobj.orbitPeriod }, { "arrival-point", edobj.arrivalPoint }, { "luminosity", edobj.luminosity }, { "notes", edobj.notes }, { "image-url", edobj.imageUrl } } } } } }; ResponseData response; if (edobj.id == 0) { response = RequestSecurePost(joPost.ToString(), $"{ApiNamespace}/stars"); if (response.StatusCode == HttpStatusCode.Created) { JObject jo2 = (JObject)JObject.Parse(response.Body); JObject obj = (JObject)jo2["data"]; edobj.id = obj["id"].Value<int>(); } else if ((int)response.StatusCode == 422) { var queryParams = $"system={jo.system}&star={jo.star}"; var response2 = RequestGet($"{ApiNamespace}/stars/?{queryParams}"); if (response2.StatusCode == HttpStatusCode.OK) { JObject jo2 = (JObject)JObject.Parse(response2.Body); JArray items = (JArray)jo2["data"]; if (items.Count > 0) { edobj.id = items[0]["id"].Value<int>(); JObject jData = (JObject)joPost["data"]; jData["id"] = edobj.id; response2 = RequestSecurePatch(joPost.ToString(), $"{ApiNamespace}/stars/" + edobj.id.ToString()); response = response2; } } } } else { response = RequestSecurePatch(joPost.ToString(), $"{ApiNamespace}/stars/" + edobj.id.ToString()); } return response; }