private void monitorAnomScience(CelestialBody B, string s, string name) { if (FlightGlobals.currentMainBody == B) { if (s == scienceContainer.exp.id) { DMAnomalyList.updateAnomaly(FlightGlobals.ActiveVessel, city); DMUtils.Logging("Distance To Anomaly: {0} ; Altitude Above Anomaly: {1} ; Horizontal Distance To Anomaly: {2}", city.Vdistance, city.Vheight, city.Vhorizontal); //Draw a cone above the anomaly position up to 100km with a diameter of 60km at its widest if (city.Vdistance < 100000) { if (situation == ExperimentSituations.FlyingLow || situation == ExperimentSituations.InSpaceLow || situation == ExperimentSituations.FlyingHigh) { if (city.Vheight > 625 && city.Vheight < 100000) { double vHeight = city.Vheight; if (vHeight > 50000) { vHeight = 50000; } if (city.Vhorizontal < (60000 * (city.Vheight / 50000))) { ScreenMessages.PostScreenMessage("Results From Anomalous Signal Recovered", 6f, ScreenMessageStyle.UPPER_CENTER); collected = true; } else { ScreenMessages.PostScreenMessage("Anomalous signal too weak, try again when closer", 6f, ScreenMessageStyle.UPPER_CENTER); } } else if (city.Vheight < 625) { if (city.Vhorizontal < 750) { ScreenMessages.PostScreenMessage("Results From Anomalous Signal Recovered", 6f, ScreenMessageStyle.UPPER_CENTER); collected = true; } else { ScreenMessages.PostScreenMessage("Anomalous signal too weak, try again when closer", 6f, ScreenMessageStyle.UPPER_CENTER); } } } else if (situation == ExperimentSituations.SrfLanded) { if (city.Vhorizontal < 500) { ScreenMessages.PostScreenMessage("Results From Anomalous Signal Recovered", 6f, ScreenMessageStyle.UPPER_CENTER); collected = true; } else { ScreenMessages.PostScreenMessage("Anomalous signal too weak, try again when closer", 6f, ScreenMessageStyle.UPPER_CENTER); } } } } } }
public override void OnLoad(ConfigNode node) { if (DMagicVersion != DMUtils.version) { DMUtils.DebugLog("[DM] New DMagic Version Detected; Resetting Contracts"); DMagicVersion = DMUtils.version; contractsReload = true; } else { contractsReload = false; } DMUtils.DebugLog("Loading Science Scenario"); recoveredScienceList.Clear(); ConfigNode results_node = node.GetNode("Asteroid_Science"); if (results_node != null) { foreach (ConfigNode scienceResults_node in results_node.GetNodes("DM_Science")) { string title = scienceResults_node.GetValue("title"); float bsv = float.Parse(scienceResults_node.GetValue("bsv")); float scv = float.Parse(scienceResults_node.GetValue("scv")); float sci = float.Parse(scienceResults_node.GetValue("sci")); float cap = float.Parse(scienceResults_node.GetValue("cap")); RecordNewScience(title, bsv, scv, sci, cap); } } if (HighLogic.LoadedScene == GameScenes.SPACECENTER || HighLogic.LoadedScene == GameScenes.TRACKSTATION) { recoveryWatcher = gameObject.AddComponent <DMRecoveryWatcher>(); } if (HighLogic.LoadedSceneIsFlight) { tranWatcher = gameObject.AddComponent <DMTransmissionWatcher>(); anomalyList = gameObject.AddComponent <DMAnomalyList>(); updateRemainingData(); } }