KitchenSpikeComponent.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using Robust.Shared.Audio;
  2. using Robust.Shared.GameStates;
  3. using Robust.Shared.Serialization;
  4. namespace Content.Shared.Kitchen.Components;
  5. [RegisterComponent, NetworkedComponent]
  6. [Access(typeof(SharedKitchenSpikeSystem))]
  7. public sealed partial class KitchenSpikeComponent : Component
  8. {
  9. [DataField("delay")]
  10. public float SpikeDelay = 7.0f;
  11. [ViewVariables(VVAccess.ReadWrite)]
  12. [DataField("sound")]
  13. public SoundSpecifier SpikeSound = new SoundPathSpecifier("/Audio/Effects/Fluids/splat.ogg");
  14. public List<string>? PrototypesToSpawn;
  15. // TODO: Spiking alive mobs? (Replace with uid) (deal damage to their limbs on spiking, kill on first butcher attempt?)
  16. public string MeatSource1p = "?";
  17. public string MeatSource0 = "?";
  18. public string Victim = "?";
  19. // Prevents simultaneous spiking of two bodies (could be replaced with CancellationToken, but I don't see any situation where Cancel could be called)
  20. public bool InUse;
  21. [Serializable, NetSerializable]
  22. public enum KitchenSpikeVisuals : byte
  23. {
  24. Status
  25. }
  26. [Serializable, NetSerializable]
  27. public enum KitchenSpikeStatus : byte
  28. {
  29. Empty,
  30. Bloody
  31. }
  32. }