* Add struct for holding historical data on cargo bounties * Add localisation strings for bounty history * Add new XAML entry for display bounty history * Expand cargo bounty menu to include tabs * Ensure station databases hold historical bounty data * Add to the bounty history when removing one from active * Feed bounty history into cargo's bounty system * Move tab title setting to constructor * Remove redundant access specifications * Remove un-needed override * Fixup BountyHistoryEntry backing code * Fix formatting in CargoBountyMenu * Reformat BountyHistoryData * Rework TryRemoveBounty to use new Entity type * Add Enum for showing bounty results * Rework look and feel of History tab * Add visible text when no bounties have been completed yet * Remove control * Swap default to null * Reverse ordering of bounties so last entry comes first * Remove redundant Visible * Move enum docs into the enum
50 lines
1.7 KiB
C#
50 lines
1.7 KiB
C#
using Content.Client.Message;
|
|
using Content.Shared.Cargo;
|
|
using Content.Shared.Cargo.Prototypes;
|
|
using Robust.Client.AutoGenerated;
|
|
using Robust.Client.UserInterface.Controls;
|
|
using Robust.Client.UserInterface.XAML;
|
|
using Robust.Shared.Prototypes;
|
|
using Robust.Shared.Timing;
|
|
|
|
namespace Content.Client.Cargo.UI;
|
|
|
|
[GenerateTypedNameReferences]
|
|
public sealed partial class BountyHistoryEntry : BoxContainer
|
|
{
|
|
[Dependency] private readonly IPrototypeManager _prototype = default!;
|
|
|
|
public BountyHistoryEntry(CargoBountyHistoryData bounty)
|
|
{
|
|
RobustXamlLoader.Load(this);
|
|
IoCManager.InjectDependencies(this);
|
|
|
|
if (!_prototype.TryIndex(bounty.Bounty, out var bountyPrototype))
|
|
return;
|
|
|
|
var items = new List<string>();
|
|
foreach (var entry in bountyPrototype.Entries)
|
|
{
|
|
items.Add(Loc.GetString("bounty-console-manifest-entry",
|
|
("amount", entry.Amount),
|
|
("item", Loc.GetString(entry.Name))));
|
|
}
|
|
|
|
ManifestLabel.SetMarkup(Loc.GetString("bounty-console-manifest-label", ("item", string.Join(", ", items))));
|
|
RewardLabel.SetMarkup(Loc.GetString("bounty-console-reward-label", ("reward", bountyPrototype.Reward)));
|
|
IdLabel.SetMarkup(Loc.GetString("bounty-console-id-label", ("id", bounty.Id)));
|
|
|
|
TimestampLabel.SetMarkup(bounty.Timestamp.ToString(@"hh\:mm\:ss"));
|
|
|
|
if (bounty.Result == CargoBountyHistoryData.BountyResult.Completed)
|
|
{
|
|
NoticeLabel.SetMarkup(Loc.GetString("bounty-console-history-notice-completed-label"));
|
|
}
|
|
else
|
|
{
|
|
NoticeLabel.SetMarkup(Loc.GetString("bounty-console-history-notice-skipped-label",
|
|
("id", bounty.ActorName ?? "")));
|
|
}
|
|
}
|
|
}
|