2024-11-06 08:44:03 +03:00
using Content.Shared._CP14.MagicRitual.Prototypes ;
2024-08-01 11:52:27 +03:00
using Content.Shared._CP14.MagicSpell.Spells ;
2024-11-09 17:55:16 +03:00
using Content.Shared._CP14.MagicSpellStorage ;
2024-07-28 17:26:47 +03:00
using Content.Shared.FixedPoint ;
2024-11-06 08:44:03 +03:00
using Robust.Shared.Prototypes ;
2024-07-28 17:26:47 +03:00
2024-08-01 11:52:27 +03:00
namespace Content.Shared._CP14.MagicSpell.Components ;
2024-07-28 17:26:47 +03:00
/// <summary>
/// Restricts the use of this action, by spending mana or user requirements.
/// </summary>
2024-11-09 17:55:16 +03:00
[RegisterComponent, Access(typeof(CP14SharedMagicSystem), typeof(CP14SpellStorageSystem))]
2024-07-28 17:26:47 +03:00
public sealed partial class CP14MagicEffectComponent : Component
{
2024-11-09 17:55:16 +03:00
/// <summary>
/// if this effect was provided by an spellstorage, it will be recorded here automatically.
/// </summary>
[DataField]
public Entity < CP14SpellStorageComponent > ? SpellStorage ;
2024-07-28 17:26:47 +03:00
[DataField]
public FixedPoint2 ManaCost = 0f ;
2024-11-06 08:44:03 +03:00
[DataField]
public ProtoId < CP14MagicTypePrototype > ? MagicType = null ;
/// <summary>
/// Can the cost of casting this magic effect be changed from clothing or other sources?
/// </summary>
[DataField]
public bool CanModifyManacost = true ;
2024-08-02 13:51:54 +03:00
/// <summary>
/// Effects that will trigger at the beginning of the cast, before mana is spent. Should have no gameplay importance, just special effects, popups and sounds.
/// </summary>
[DataField]
public List < CP14SpellEffect > TelegraphyEffects = new ( ) ;
2024-08-01 11:52:27 +03:00
[DataField]
public List < CP14SpellEffect > Effects = new ( ) ;
2024-07-28 17:26:47 +03:00
}