using Robust.Shared.GameStates; namespace Content.Shared.Magic.Components; // TODO: Rename to MagicActionComponent or MagicRequirementsComponent [RegisterComponent, NetworkedComponent, Access(typeof(SharedMagicSystem))] public sealed partial class MagicComponent : Component { // TODO: Split into different components? // This could be the MagicRequirementsComp - which just is requirements for the spell // Magic comp could be on the actual entities itself // Could handle lifetime, ignore caster, etc? // Magic caster comp would be on the caster, used for what I'm not sure // TODO: Do After here or in actions // TODO: Spell requirements // A list of requirements to cast the spell // Hands // Any item in hand // Spell takes up an inhand slot // May be an action toggle or something // TODO: List requirements in action desc /// /// Does this spell require Wizard Robes & Hat? /// [DataField, ViewVariables(VVAccess.ReadWrite)] public bool RequiresClothes; /// /// Does this spell require the user to speak? /// [DataField, ViewVariables(VVAccess.ReadWrite)] public bool RequiresSpeech; // TODO: FreeHand - should check if toggleable action // Check which hand is free to toggle action in }