using Content.Server.Ninja.Systems; using Content.Shared.Communications; using Robust.Shared.Audio; using Robust.Shared.Prototypes; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.List; namespace Content.Server.GameTicking.Rules.Components; [RegisterComponent, Access(typeof(SpaceNinjaSystem))] public sealed partial class NinjaRuleComponent : Component { /// /// All ninja minds that are using this rule. /// Their SpaceNinjaComponent Rule field should point back to this rule. /// [DataField("minds")] public List Minds = new(); /// /// List of objective entity prototypes to add /// [DataField("objectives", required: true, customTypeSerializer: typeof(PrototypeIdListSerializer))] public List Objectives = new(); /// /// List of threats that can be called in. Copied onto when gloves are enabled. /// [DataField("threats", required: true)] public List Threats = new(); /// /// Sound played when making the player a ninja via antag control or ghost role /// [DataField("greetingSound", customTypeSerializer: typeof(SoundSpecifierTypeSerializer))] public SoundSpecifier? GreetingSound = new SoundPathSpecifier("/Audio/Misc/ninja_greeting.ogg"); }