48 lines
1.3 KiB
C#
48 lines
1.3 KiB
C#
using EDPlayerJournal.Entries;
|
|
|
|
namespace EDPlayerJournal.BGS;
|
|
|
|
public class ThargoidKill : Transaction {
|
|
/// <summary>
|
|
/// Thargoid vessel that was killed
|
|
/// </summary>
|
|
public ThargoidVessel ThargoidType { get; set; } = ThargoidVessel.Unknown;
|
|
|
|
/// <summary>
|
|
/// Name of the thargoid type killed
|
|
/// </summary>
|
|
public string? ThargoidName { get; set; }
|
|
|
|
/// <summary>
|
|
/// Total reward received
|
|
/// </summary>
|
|
public ulong TotalReward {
|
|
get { return (ulong)Entries.OfType<FactionKillBondEntry>().Sum(x => (decimal)x.Reward); }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Kiling thargoids contributes to the system wide effort of
|
|
/// the thargoid war.
|
|
/// </summary>
|
|
public override bool SystemContribution {
|
|
get { return true; }
|
|
}
|
|
|
|
public ThargoidKill() { }
|
|
|
|
public ThargoidKill(FactionKillBondEntry entry) {
|
|
if (!Factions.IsThargoid(entry.VictimFaction)) {
|
|
throw new Exception("Not a valid thargoid kill");
|
|
}
|
|
|
|
Entries.Add(entry);
|
|
|
|
ThargoidType = Thargoid.GetVesselByPayout(entry.Reward);
|
|
ThargoidName = Thargoid.GetVesselName(ThargoidType);
|
|
}
|
|
|
|
public override string ToString() {
|
|
return string.Format("{0}x {1} killed", Entries.Count, ThargoidName);
|
|
}
|
|
}
|