ArtifactEffectPrototype.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using Content.Shared.Item;
  2. using Content.Shared.Whitelist;
  3. using Robust.Shared.Prototypes;
  4. using Robust.Shared.Serialization;
  5. namespace Content.Shared.Xenoarchaeology.XenoArtifacts;
  6. /// <summary>
  7. /// This is a prototype for...
  8. /// </summary>
  9. [Prototype]
  10. [DataDefinition]
  11. public sealed partial class ArtifactEffectPrototype : IPrototype
  12. {
  13. /// <inheritdoc/>
  14. [IdDataField]
  15. public string ID { get; private set; } = default!;
  16. /// <summary>
  17. /// Components that are added to the artifact when the specfic effect is active.
  18. /// These are removed after the node is exited and the effect is changed.
  19. /// </summary>
  20. [DataField("components", serverOnly: true)]
  21. public ComponentRegistry Components = new();
  22. /// <summary>
  23. /// Components that are permanently added to an entity when the effect's node is entered.
  24. /// </summary>
  25. [DataField("permanentComponents")]
  26. public ComponentRegistry PermanentComponents = new();
  27. //TODO: make this a list so we can have multiple target depths
  28. [DataField("targetDepth")]
  29. public int TargetDepth = 0;
  30. [DataField("effectHint")]
  31. public string? EffectHint;
  32. [DataField("whitelist")]
  33. public EntityWhitelist? Whitelist;
  34. [DataField("blacklist")]
  35. public EntityWhitelist? Blacklist;
  36. }