using Content.Server._DV.Objectives.Systems;
using Content.Shared.FixedPoint;
using Content.Shared.Store;
using Robust.Shared.Prototypes;
namespace Content.Server._DV.Objectives.Components;
///
/// Makes this objective part of a syndicate contract, granting TC and reputation upon completion.
///
[RegisterComponent, Access(typeof(ContractObjectiveSystem))]
public sealed partial class ContractObjectiveComponent : Component
{
///
/// How much reputation to add when completed.
///
[DataField]
public int Reputation;
///
/// How much currency to give when completed.
///
[DataField]
public FixedPoint2 Payment;
///
/// Pay when the contract is taken but disable rejecting it.
///
[DataField]
public bool Prepaid;
///
/// Whether this contract can be rejected.
/// Funded contracts cannot be rejected to prevent infinite TC exploiting.
///
[ViewVariables]
public bool Rejectable => !Prepaid;
///
/// What currency to add.
///
[DataField]
public ProtoId Currency = "Telecrystal";
///
/// The mind with Contracts this contract belongs to.
///
[DataField]
public EntityUid? Contracts;
}