Compare commits
	
		
			No commits in common. "6dbc46671362a01c5ca0e2f2c2e92c5f4bf43ced" and "df6b5bf10d6f3852770dfeebe6a2e8633d554109" have entirely different histories.
		
	
	
		
			6dbc466713
			...
			df6b5bf10d
		
	
		
| @ -5,56 +5,34 @@ using Newtonsoft.Json.Linq; | |||||||
| namespace EDJournal { | namespace EDJournal { | ||||||
|     public class MissionCompletedEntry : Entry { |     public class MissionCompletedEntry : Entry { | ||||||
|         private Dictionary<string, string> influences = new Dictionary<string, string>(); |         private Dictionary<string, string> influences = new Dictionary<string, string>(); | ||||||
|         private List<string> affected = new List<string>(); |  | ||||||
|         private string readable_name = null; |         private string readable_name = null; | ||||||
|         private bool readable_name_generated = false; |         private bool readable_name_generated = false; | ||||||
|  |         private string name = null; | ||||||
|  |         private string commodity = null; | ||||||
|  |         private int count = 0; | ||||||
|  |         private int donated = 0; | ||||||
|  |         private int id = 0; | ||||||
| 
 | 
 | ||||||
|         protected override void Initialise() { |         protected override void Initialise() { | ||||||
|             MissionID = JSON.Value<int?>("MissionID") ?? 0; |             id = JSON.Value<int?>("MissionID") ?? 0; | ||||||
|             Name = JSON.Value<string>("Name"); |             name = JSON.Value<string>("Name"); | ||||||
|             if (JSON.ContainsKey("Commodity_Localised")) { |             if (JSON.ContainsKey("Commodity_Localised")) { | ||||||
|                 Commodity = JSON.Value<string>("Commodity_Localised"); |                 commodity = JSON.Value<string>("Commodity_Localised"); | ||||||
|             } |             } | ||||||
|             if (JSON.ContainsKey("Count")) { |             if (JSON.ContainsKey("Count")) { | ||||||
|                 Count = JSON.Value<int>("Count"); |                 count = JSON.Value<int>("Count"); | ||||||
|             } |             } | ||||||
|             if (JSON.ContainsKey("Donated")) { |             if (JSON.ContainsKey("Donated")) { | ||||||
|                 Donated = JSON.Value<int>("Donated"); |                 donated = JSON.Value<int>("Donated"); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             MakeHumanReadableName(); |             MakeHumanReadableName(); | ||||||
|             BuildInfluenceList(); |  | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         private void BuildInfluenceList() { |         public string Name => name; | ||||||
|             influences.Clear(); |         public string Commodity => commodity; | ||||||
|             affected.Clear(); |         public int Count => count; | ||||||
| 
 |         public int MissionID => id; | ||||||
|             var effects = JSON.Value<JArray>("FactionEffects"); |  | ||||||
|             foreach (var effect in effects.Children<JObject>()) { |  | ||||||
|                 string faction = effect.Value<string>("Faction"); |  | ||||||
|                 affected.Add(faction); |  | ||||||
| 
 |  | ||||||
|                 var influence = effect.Value<JArray>("Influence"); |  | ||||||
|                 if (influence == null || influence.Count == 0) { |  | ||||||
|                     // No influence reward, happens sometimes, but we have to accept it |  | ||||||
|                     influences.Add(faction, ""); |  | ||||||
|                 } else { |  | ||||||
|                     foreach (var infl in influence.Children<JObject>()) { |  | ||||||
|                         infl.TryGetValue("Influence", out JToken result); |  | ||||||
|                         if (result != null && result.Type == JTokenType.String) { |  | ||||||
|                             influences.Add(faction, result.ToString()); |  | ||||||
|                         } |  | ||||||
|                     } |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         public string Name { get; set; } |  | ||||||
|         public string Commodity { get; set; } |  | ||||||
|         public int Count { get; set; } |  | ||||||
|         public int Donated { get; set; } |  | ||||||
|         public int MissionID { get; set; } |  | ||||||
| 
 | 
 | ||||||
|         private void MakeHumanReadableName() { |         private void MakeHumanReadableName() { | ||||||
|             if (readable_name != null || Name == null) { |             if (readable_name != null || Name == null) { | ||||||
| @ -82,12 +60,12 @@ namespace EDJournal { | |||||||
|                 builder.Append(readable); |                 builder.Append(readable); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             if (Count > 0 && Commodity != null) { |             if (count > 0 && commodity != null) { | ||||||
|                 builder.AppendFormat(" ({0} {1})", Count, Commodity); |                 builder.AppendFormat(" ({0} {1})", count, commodity); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             if (Donated > 0) { |             if (donated > 0) { | ||||||
|                 builder.AppendFormat(" ({0})", Credits.FormatCredits(Donated)); |                 builder.AppendFormat(" ({0})", Credits.FormatCredits(donated)); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             readable_name = builder.ToString().Trim(); |             readable_name = builder.ToString().Trim(); | ||||||
| @ -107,13 +85,33 @@ namespace EDJournal { | |||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         public string[] AffectedFactions => affected.ToArray(); |  | ||||||
| 
 |  | ||||||
|         public string GetInfluenceForFaction(string faction) { |         public string GetInfluenceForFaction(string faction) { | ||||||
|             if (influences.ContainsKey(faction)) { |             if (influences.ContainsKey(faction)) { | ||||||
|                 return influences[faction]; |                 return influences[faction]; | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|  |             var effects = JSON.Value<JArray>("FactionEffects"); | ||||||
|  |             foreach (var effect in effects.Children<JObject>()) { | ||||||
|  |                 if (effect.GetValue("Faction").ToString() != faction) { | ||||||
|  |                     continue; | ||||||
|  |                 } | ||||||
|  |                      | ||||||
|  |                 var influence = effect.Value<JArray>("Influence"); | ||||||
|  |                 if (influence == null || influence.Count == 0) { | ||||||
|  |                     // No influence reward, happens on courier missions sometimes. | ||||||
|  |                     // There is always one point of rep, even if the mission won't state it | ||||||
|  |                     influences.Add(faction, "+"); | ||||||
|  |                 } | ||||||
|  |                  | ||||||
|  |                 foreach (var infl in influence.Children<JObject>()) { | ||||||
|  |                     infl.TryGetValue("Influence", out JToken result); | ||||||
|  |                     if (result != null && result.Type == JTokenType.String) { | ||||||
|  |                         influences.Add(faction, result.ToString()); | ||||||
|  |                         return result.ToString(); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|             return ""; |             return ""; | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | |||||||
| @ -50,8 +50,6 @@ | |||||||
|     <Mission Name="Mission_OnFoot_RebootRestore_MB_name">On Foot Reboot/Restore</Mission> |     <Mission Name="Mission_OnFoot_RebootRestore_MB_name">On Foot Reboot/Restore</Mission> | ||||||
|     <Mission Name="Mission_OnFoot_Sabotage_Production_Covert_MB_name">On Foot Sabotage Production (Covert)</Mission> |     <Mission Name="Mission_OnFoot_Sabotage_Production_Covert_MB_name">On Foot Sabotage Production (Covert)</Mission> | ||||||
|     <Mission Name="Mission_OnFoot_Salvage_MB_name">On Foot Salvage</Mission> |     <Mission Name="Mission_OnFoot_Salvage_MB_name">On Foot Salvage</Mission> | ||||||
|     <Mission Name="Mission_PassengerBulk_AIDWORKER_ARRIVING">Aid Workers Seeking Transport</Mission> |  | ||||||
|     <Mission Name="Mission_PassengerVIP">Passenger (VIP)</Mission> |  | ||||||
|     <Mission Name="Mission_PassengerVIP_name">Passenger (VIP)</Mission> |     <Mission Name="Mission_PassengerVIP_name">Passenger (VIP)</Mission> | ||||||
|     <Mission Name="Mission_PassengerVIP_Scientist_FAMINE_name">Passenger (VIP) (Famine)</Mission> |     <Mission Name="Mission_PassengerVIP_Scientist_FAMINE_name">Passenger (VIP) (Famine)</Mission> | ||||||
|     <Mission Name="Mission_Rescue_Planet_name">Planet Rescue</Mission> |     <Mission Name="Mission_Rescue_Planet_name">Planet Rescue</Mission> | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user