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; }