using Content.Shared.Actions; namespace Content.Shared.Implants.Components; /// /// Subdermal implants get stored in a container on an entity and grant the entity special actions /// The actions can be activated via an action, a passive ability (ie tracking), or a reactive ability (ie on death) or some sort of combination /// They're added and removed with implanters /// [RegisterComponent] public sealed class SubdermalImplantComponent : Component { /// /// Used where you want the implant to grant the owner an instant action. /// [ViewVariables(VVAccess.ReadWrite)] [DataField("implantAction")] public string? ImplantAction; /// /// The entity this implant is inside /// [ViewVariables] public EntityUid? ImplantedEntity; /// /// Should this implant be removeable? /// [ViewVariables(VVAccess.ReadWrite)] [DataField("permanent")] public bool Permanent = false; } /// /// Used for opening the storage implant via action. /// public sealed class OpenStorageImplantEvent : InstantActionEvent { } public sealed class UseFreedomImplantEvent : InstantActionEvent { } /// /// Used for triggering trigger events on the implant via action /// public sealed class ActivateImplantEvent : InstantActionEvent { } /// /// Used for opening the uplink implant via action. /// public sealed class OpenUplinkImplantEvent : InstantActionEvent { }