using Content.Server.Objectives.Systems; using Content.Shared.Objectives; using Robust.Shared.Prototypes; namespace Content.Server.Objectives.Components; /// /// Requires that you steal a certain item (or several) /// [RegisterComponent, Access(typeof(StealConditionSystem))] public sealed partial class StealConditionComponent : Component { /// /// A group of items to be stolen /// [DataField(required: true)] public ProtoId StealGroup; /// /// When enabled, disables generation of this target if there is no entity on the map (disable for objects that can be created mid-round). /// [DataField] public bool VerifyMapExistence = true; /// /// If true, counts objects that are close to steal areas. /// [DataField] public bool CheckStealAreas = false; /// /// If the target may be alive but has died, it will not be counted /// [DataField] public bool CheckAlive = false; /// /// The minimum number of items you need to steal to fulfill a objective /// [DataField] public int MinCollectionSize = 1; /// /// The maximum number of items you need to steal to fulfill a objective /// [DataField] public int MaxCollectionSize = 1; /// /// Target collection size after calculation /// [DataField] public int CollectionSize; /// /// Help newer players by saying e.g. "steal the chief engineer's advanced magboots" /// instead of "steal advanced magboots. Should be a loc string. /// [DataField("owner")] public string? OwnerText; // All this need to be loc string [DataField(required: true)] public LocId ObjectiveText; [DataField(required: true)] public LocId ObjectiveNoOwnerText; [DataField(required: true)] public LocId DescriptionText; [DataField(required: true)] public LocId DescriptionMultiplyText; }