add merits to the log

This commit is contained in:
2025-04-16 15:09:56 +02:00
parent 693d49be14
commit 4cefc393b5
6 changed files with 50 additions and 38 deletions

View File

@@ -0,0 +1,31 @@
using EDPlayerJournal.Entries;
namespace EDPlayerJournal.BGS.Parsers;
internal class PowerplayMeritsParser : ITransactionParserPart {
public void Parse(Entry entry, TransactionParserContext context, TransactionParserOptions options, TransactionList transactions) {
PowerplayMeritsEntry? e = entry as PowerplayMeritsEntry;
if (e == null) {
throw new ApplicationException("not a valid PowerplayMerits entry");
}
MeritsGained? transaction = null;
transaction = transactions
.OfType<MeritsGained>()
.Where(x => x.System == context.CurrentSystem &&
x.Power == e.Power)
.FirstOrDefault()
;
if (transaction == null) {
transaction = new MeritsGained(e) {
System = context.CurrentSystem,
Power = e.Power,
Faction = e.Power,
};
transactions.Add(transaction);
} else {
transaction.Entries.Add(e);
}
}
}

View File

@@ -1,31 +0,0 @@
using EDPlayerJournal.Entries;
namespace EDPlayerJournal.BGS.Parsers;
internal class PowerplayParser : ITransactionParserPart {
public void Parse(Entry entry, TransactionParserContext context, TransactionParserOptions options, TransactionList transactions) {
PowerplayEntry? p = entry as PowerplayEntry;
if (p == null) {
return;
}
if (context.LastMerits == null) {
context.LastMerits = p.Merits;
}
context.CurrentMerits = p.Merits;
if (context.LastMerits != context.CurrentMerits) {
if (!options.IgnorePowerplay) {
transactions.Add(new MeritsGained(entry) {
Merits = ((long)(context.CurrentMerits - context.LastMerits)),
Power = p.Power,
System = context.CurrentSystem,
Faction = p.Power,
});
}
}
context.LastMerits = context.CurrentMerits;
}
}