private void onComplete(ProgressNode node) { if (node == null) { return; } if (!node.IsComplete) { return; } if (!progressParser.isIntervalType(node)) { if (progressParser.isPOI(node)) { progressStandard s = progressParser.getPOINode(node.Id); if (s == null) { Debug.Log("[Progress Tracking Parser] POI Progress Node Not Found"); } else { s.calculateRewards(null); s.NoteReference = progressParser.vesselNameFromNode(node); try { s.Time = (double)node.GetType().GetField("AchieveDate", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(node); } catch (Exception e) { Debug.LogWarning("[Progress Tracking Parser] Error In Detecting Progress Node Achievement Date\n" + e); } } } else { progressStandard s = progressParser.getStandardNode(node.Id); if (s != null) { s.calculateRewards(null); string note = progressParser.crewNameFromNode(node); if (string.IsNullOrEmpty(note)) { note = progressParser.vesselNameFromNode(node); } s.NoteReference = note; try { s.Time = (double)node.GetType().GetField("AchieveDate", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(node); } catch (Exception e) { Debug.LogWarning("[Progress Tracking Parser] Error In Detecting Progress Node Achievement Date\n" + e); } } else { CelestialBody body = progressParser.getBodyFromType(node); if (body == null) { Debug.Log("[Progress Tracking Parser] Body From Progress Node Null..."); } else { progressBodyCollection b = progressParser.getProgressBody(body); if (b != null) { progressStandard sb = b.getNode(node.Id); if (sb == null) { Debug.Log("[Progress Tracking Parser] Body Sub Progress Node Not Found"); } else { sb.calculateRewards(body); string note = progressParser.crewNameFromNode(node); if (string.IsNullOrEmpty(note)) { note = progressParser.vesselNameFromNode(node); } sb.NoteReference = note; try { sb.Time = (double)node.GetType().GetField("AchieveDate", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(node); } catch (Exception e) { Debug.LogWarning("[Progress Tracking Parser] Error In Detecting Progress Node Achievement Date\n" + e); } } } } } } } else { progressInterval i = progressParser.getIntervalNode(node.Id); if (i == null) { Debug.Log("[Progress Tracking Parser] Interval Progress Node Not Found"); } else { if (node.IsReached) { i.calculateRewards(i.Interval); i.Interval += 1; } } } progressParser.updateCompletionRecord(); }
private void buildBodyNode(int id, int index, progressBodyCollection p, int size, ref Rect r) { GUILayout.BeginHorizontal(); GUILayout.Space(20); if (popup) GUILayout.Label(p.Body.bodyName, contractSkins.progressBodyTitleBehind, GUILayout.MaxWidth(160 + size * 30)); { if (GUILayout.Button(p.Body.bodyName, contractSkins.progressBodyTitle, GUILayout.MaxWidth(160 + size * 30))) { selectedBody = index; } } r = GUILayoutUtility.GetLastRect(); GUILayout.EndHorizontal(); if (selectedBody != index) return; for (int i = 0; i < bodySubNodes[index].Count; i++) { progressStandard s = bodySubNodes[index][i]; if (s == null) continue; if (!s.IsComplete) continue; buildStandardNode(id, s, size, ref r, p.Body.theName); } }