Compare commits
No commits in common. "d0bd8ce7115da8c43e3ea808601d949f87aad5d4" and "2bdb1847dc12e83418bdd2811ce02b89e1aec97e" have entirely different histories.
d0bd8ce711
...
2bdb1847dc
@ -4,8 +4,10 @@ using EDJournal;
|
||||
|
||||
namespace EliteBGS.BGS {
|
||||
public class Cartographics : LogEntry {
|
||||
public Cartographics(MultiSellExplorationDataEntry e) {
|
||||
public Cartographics(MultiSellExplorationDataEntry e, string current_system, string current_station) {
|
||||
Entries.Add(e);
|
||||
System = current_system;
|
||||
Station = current_station;
|
||||
}
|
||||
|
||||
public int TotalSum {
|
||||
|
@ -1,24 +0,0 @@
|
||||
using System.Text;
|
||||
|
||||
namespace EliteBGS.BGS {
|
||||
/// <summary>
|
||||
/// This class is used when a completed mission gives influence to another
|
||||
/// faction as well. This happens, for example, when you deliver cargo from one
|
||||
/// faction to another. Both sometimes gain influence.
|
||||
/// </summary>
|
||||
public class InfluenceSupport : LogEntry {
|
||||
public string Influence { get; set; }
|
||||
public MissionCompleted RelevantMission { get; set; }
|
||||
|
||||
public override string ToString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
|
||||
builder.AppendFormat("Influence gained from \"{0}\": \"{1}\"",
|
||||
RelevantMission.MissionName,
|
||||
string.IsNullOrEmpty(Influence) ? "NONE" : Influence
|
||||
);
|
||||
|
||||
return builder.ToString();
|
||||
}
|
||||
}
|
||||
}
|
@ -35,6 +35,6 @@ namespace EliteBGS.BGS {
|
||||
throw new NotImplementedException("not implemented");
|
||||
}
|
||||
|
||||
public string Name => ToString();
|
||||
public string Name => this.ToString();
|
||||
}
|
||||
}
|
||||
|
@ -37,8 +37,7 @@ namespace EliteBGS.BGS {
|
||||
}
|
||||
|
||||
builder.AppendFormat("{0}x Mission failed: \"{1}\"",
|
||||
// +1 since the other entries are just copies of the one we have in our properties
|
||||
Entries.Count + 1,
|
||||
Entries.Count,
|
||||
Failed.HumanReadableName != null ? Failed.HumanReadableName : Failed.Name
|
||||
);
|
||||
|
||||
|
122
BGS/Report.cs
122
BGS/Report.cs
@ -65,7 +65,7 @@ namespace EliteBGS.BGS {
|
||||
objectives.ForEach(x => x.Clear());
|
||||
|
||||
foreach (var e in relevant) {
|
||||
List<LogEntry> results = new List<LogEntry>();
|
||||
LogEntry entry = null;
|
||||
bool collate = false;
|
||||
|
||||
if (e.Is(Events.Docked)) {
|
||||
@ -94,10 +94,10 @@ namespace EliteBGS.BGS {
|
||||
}
|
||||
} else if (e.Is(Events.MissionCompleted)) {
|
||||
var completed = e as MissionCompletedEntry;
|
||||
results.Add(new MissionCompleted(completed) {
|
||||
entry = new MissionCompleted(completed) {
|
||||
System = current_system,
|
||||
Station = current_station
|
||||
});
|
||||
};
|
||||
if (completed.HumanReadableNameWasGenerated) {
|
||||
/* If the human readable name was generated, we send a log message. Because the
|
||||
* generated names all sort of suck, we should have more human readable names in
|
||||
@ -107,17 +107,6 @@ namespace EliteBGS.BGS {
|
||||
completed.Name +
|
||||
"\" was generated, please report this.");
|
||||
}
|
||||
|
||||
foreach (string other in completed.AffectedFactions.Where(x => !x.Equals(results[0].Faction))) {
|
||||
string faction = other;
|
||||
string influence = completed.GetInfluenceForFaction(faction);
|
||||
|
||||
results.Add(new InfluenceSupport() {
|
||||
Faction = faction,
|
||||
Influence = influence,
|
||||
RelevantMission = results[0] as MissionCompleted
|
||||
});
|
||||
}
|
||||
} else if (e.Is(Events.MissionAccepted)) {
|
||||
MissionAcceptedEntry accepted = e as MissionAcceptedEntry;
|
||||
acceptedMissions[accepted.MissionID] = accepted;
|
||||
@ -129,7 +118,7 @@ namespace EliteBGS.BGS {
|
||||
"Please adjust start date to when the mission was accepted to include it in the list.");
|
||||
continue;
|
||||
}
|
||||
results.Add(new MissionFailed(accepted) { Failed = failed, System = current_system });
|
||||
entry = new MissionFailed(accepted) { Failed = failed, System = current_system };
|
||||
if (failed.HumanReadableName == null) {
|
||||
OnLog?.Invoke("Human readable name for mission \"" +
|
||||
failed.Name +
|
||||
@ -142,28 +131,27 @@ namespace EliteBGS.BGS {
|
||||
} else if (e.Is(Events.MultiSellExplorationData)) {
|
||||
/* For multi-sell-exploraton-data only the controlling faction of the station sold to matters.
|
||||
*/
|
||||
results.Add(new Cartographics(e as MultiSellExplorationDataEntry) {
|
||||
System = current_system,
|
||||
Station = current_station,
|
||||
Faction = controlling_faction
|
||||
});
|
||||
entry = new Cartographics(e as MultiSellExplorationDataEntry, current_system, current_station);
|
||||
entry.Faction = controlling_faction;
|
||||
} else if (e.Is(Events.RedeemVoucher)) {
|
||||
/* Same for selling combat vouchers. Only the current controlling faction matters here.
|
||||
*/
|
||||
results.Add(new Vouchers(e as RedeemVoucherEntry) {
|
||||
System = current_system,
|
||||
Station = current_station,
|
||||
Faction = (e as RedeemVoucherEntry).Factions.FirstOrDefault() ?? "",
|
||||
ControllingFaction = controlling_faction,
|
||||
});
|
||||
entry = new Vouchers();
|
||||
entry.Entries.Add(e);
|
||||
entry.System = current_system;
|
||||
entry.Station = current_station;
|
||||
entry.Faction = (e as RedeemVoucherEntry).Factions.FirstOrDefault() ?? "";
|
||||
entry.ControllingFaction = controlling_faction;
|
||||
|
||||
collate = true;
|
||||
} else if (e.Is(Events.SellMicroResources)) {
|
||||
results.Add(new SellMicroResources(e as SellMicroResourcesEntry) {
|
||||
entry = new SellMicroResources() {
|
||||
Faction = controlling_faction,
|
||||
Station = current_station,
|
||||
System = current_system
|
||||
});
|
||||
};
|
||||
|
||||
entry.Entries.Add(e);
|
||||
} else if (e.Is(Events.MarketBuy)) {
|
||||
MarketBuyEntry buy = e as MarketBuyEntry;
|
||||
if (string.IsNullOrEmpty(buy.Type) || buy.BuyPrice == 0) {
|
||||
@ -181,60 +169,60 @@ namespace EliteBGS.BGS {
|
||||
profit = sell.TotalSale - (avg * sell.Count);
|
||||
}
|
||||
|
||||
results.Add(new SellCargo(e as MarketSellEntry) {
|
||||
entry = new SellCargo() {
|
||||
Faction = controlling_faction,
|
||||
Station = current_station,
|
||||
System = current_system,
|
||||
Profit = profit
|
||||
});
|
||||
};
|
||||
|
||||
entry.Entries.Add(e);
|
||||
}
|
||||
|
||||
if (results == null || results.Count <= 0) {
|
||||
if (entry == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach (LogEntry entry in results) {
|
||||
/* Find all objectives that generally match.
|
||||
/* Find all objectives that generally match.
|
||||
*/
|
||||
var matches = objectives
|
||||
.Where(x => x.Matches(entry) > 0)
|
||||
.OrderBy(x => x.Matches(entry))
|
||||
;
|
||||
|
||||
Objective objective = null;
|
||||
if (matches != null && matches.Count() > 0) {
|
||||
/* Then select the one that matches the most.
|
||||
*/
|
||||
var matches = objectives
|
||||
.Where(x => x.Matches(entry) > 0)
|
||||
objective = matches
|
||||
.OrderBy(x => x.Matches(entry))
|
||||
.Reverse()
|
||||
.First()
|
||||
;
|
||||
} else {
|
||||
/* create a new objective if we don't have one */
|
||||
objective = new Objective() {
|
||||
Station = entry.Station,
|
||||
Faction = entry.Faction,
|
||||
System = entry.System,
|
||||
};
|
||||
objectives.Add(objective);
|
||||
}
|
||||
|
||||
Objective objective = null;
|
||||
if (matches != null && matches.Count() > 0) {
|
||||
/* Then select the one that matches the most.
|
||||
*/
|
||||
objective = matches
|
||||
.OrderBy(x => x.Matches(entry))
|
||||
.Reverse()
|
||||
.First()
|
||||
;
|
||||
} else {
|
||||
/* create a new objective if we don't have one */
|
||||
objective = new Objective() {
|
||||
Station = entry.Station,
|
||||
Faction = entry.Faction,
|
||||
System = entry.System,
|
||||
};
|
||||
objectives.Add(objective);
|
||||
LogEntry existing = null;
|
||||
|
||||
existing = objective.LogEntries.Find(x => {
|
||||
try {
|
||||
return x.CompareTo(entry) == 0;
|
||||
} catch (NotImplementedException) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
LogEntry existing = null;
|
||||
|
||||
existing = objective.LogEntries.Find(x => {
|
||||
try {
|
||||
return x.CompareTo(entry) == 0;
|
||||
} catch (NotImplementedException) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
if (collate && existing != null) {
|
||||
existing.Entries.Add(e);
|
||||
} else if (!collate || existing == null) {
|
||||
objective.LogEntries.Add(entry);
|
||||
}
|
||||
if (collate && existing != null) {
|
||||
existing.Entries.Add(e);
|
||||
} else if (!collate || existing == null) {
|
||||
objective.LogEntries.Add(entry);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -5,13 +5,6 @@ using EDJournal;
|
||||
namespace EliteBGS.BGS {
|
||||
public class SellCargo : LogEntry {
|
||||
public int Profit { get; set; }
|
||||
|
||||
public SellCargo() { }
|
||||
|
||||
public SellCargo(MarketSellEntry e) {
|
||||
Entries.Add(e);
|
||||
}
|
||||
|
||||
public override string ToString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
var sold = Entries.OfType<MarketSellEntry>().ToArray();
|
||||
@ -21,20 +14,9 @@ namespace EliteBGS.BGS {
|
||||
}
|
||||
|
||||
foreach (MarketSellEntry sell in sold) {
|
||||
string cargo;
|
||||
|
||||
if (!string.IsNullOrEmpty(sell.TypeLocalised)) {
|
||||
cargo = sell.TypeLocalised;
|
||||
} else {
|
||||
cargo = sell.Type;
|
||||
if (cargo.Length >= 2) {
|
||||
cargo = cargo[0].ToString().ToUpper() + cargo.Substring(1);
|
||||
}
|
||||
}
|
||||
|
||||
builder.AppendFormat("Sold {0} {1} to the {2}",
|
||||
sell.Count,
|
||||
cargo,
|
||||
sell.Type,
|
||||
sell.BlackMarket ? "Black Market" : "Commodity Market"
|
||||
);
|
||||
|
||||
|
@ -12,12 +12,6 @@ namespace EliteBGS.BGS {
|
||||
}
|
||||
}
|
||||
|
||||
public SellMicroResources() { }
|
||||
|
||||
public SellMicroResources(SellMicroResourcesEntry e) {
|
||||
Entries.Add(e);
|
||||
}
|
||||
|
||||
public override string ToString() {
|
||||
return string.Format("Sell Micro Resources: {0}", Credits.FormatCredits(TotalSum));
|
||||
}
|
||||
|
@ -6,13 +6,6 @@ namespace EliteBGS.BGS {
|
||||
public class Vouchers : LogEntry {
|
||||
private string type = null;
|
||||
|
||||
public Vouchers() {
|
||||
}
|
||||
|
||||
public Vouchers(RedeemVoucherEntry e) {
|
||||
Entries.Add(e);
|
||||
}
|
||||
|
||||
public int TotalSum {
|
||||
get {
|
||||
return Entries
|
||||
|
@ -82,7 +82,6 @@
|
||||
</Compile>
|
||||
<Compile Include="BGS\DiscordLogGenerator.cs" />
|
||||
<Compile Include="BGS\GenericDiscordLog.cs" />
|
||||
<Compile Include="BGS\InfluenceSupport.cs" />
|
||||
<Compile Include="BGS\MissionFailed.cs" />
|
||||
<Compile Include="BGS\NonaDiscordLog.cs" />
|
||||
<Compile Include="BGS\SellCargo.cs" />
|
||||
@ -191,9 +190,9 @@
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="LICENCE.txt">
|
||||
<Resource Include="LICENCE.txt">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</Resource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Resource Include="logo_v4.png">
|
||||
|
@ -42,11 +42,6 @@ Please note that cartography data, and micro resources only help the controlling
|
||||
of a station. The tool is clever enough to exclude these if the station you turn them in at, is not
|
||||
controlled by the faction you specified in the objective.
|
||||
|
||||
Some missions may show up having zero influence for the given faction. This happens if you do
|
||||
missions for a faction which is currently in an election state. You do not gain influence for
|
||||
the faction so the influence reads as zero. But contribute towards the election, so the missions
|
||||
are selected anyway.
|
||||
|
||||
There is no entry in the journal if you win a combat zone. So you have to add those manually. Select
|
||||
an objective for which you wish to log a combat zone. The faction in the objective, must be the
|
||||
faction you fought for in the combat zone. Then click "Add Combat Zone Win". Select type,
|
||||
|
Loading…
x
Reference in New Issue
Block a user