using Content.Shared.Cargo.Prototypes;
using Robust.Shared.Prototypes;
namespace Content.Server.Salvage.JobBoard;
///
/// holds information for a station relating to the salvage job board
///
[RegisterComponent]
[Access(typeof(SalvageJobBoardSystem))]
public sealed partial class SalvageJobsDataComponent : Component
{
///
/// A dictionary relating the number of completed jobs needed to the different ranks.
///
[DataField]
public SortedDictionary RankThresholds = new();
///
/// The rank given when all salvage jobs are complete.
///
[DataField]
public SalvageRankDatum MaxRank;
///
/// A list of all completed jobs in order.
///
[DataField]
public List> CompletedJobs = new();
///
/// Account where rewards are deposited.
///
[DataField]
public ProtoId RewardAccount = "Cargo";
}
///
/// Holds information about salvage job ranks
///
[DataDefinition]
public partial record struct SalvageRankDatum
{
///
/// The title displayed when this rank is reached
///
[DataField]
public LocId Title;
///
/// The bounties associated with this rank.
///
[DataField]
public ProtoId? BountyGroup;
///
/// The market that is unlocked when you reach this rank
///
[DataField]
public ProtoId? UnlockedMarket;
}