using System; using Gamesmiths.Forge.Abilities; using Gamesmiths.Forge.Cues; using Gamesmiths.Forge.Effects; using Gamesmiths.Forge.Effects.Components; using Gamesmiths.Forge.Effects.Duration; using Gamesmiths.Forge.Effects.Magnitudes; using Gamesmiths.Forge.Effects.Modifiers; using Gamesmiths.Forge.Tags; using Godot; using Movementtests.interfaces; namespace Movementtests.forge.abilities; [GlobalClass] public partial class RAbilityBase(float cost, float cooldown) : Resource, IAbilityBase { [Export(PropertyHint.Range, "0,100,1,or_greater")] public float Cost { get; set; } = cost; [Export(PropertyHint.Range, "0,10,0.1,or_greater")] public float Cooldown { get; set; } = cooldown; public RAbilityBase() : this(20.0f, 0.0f) { } public virtual AbilityData Ability(TagsManager tagsManager, Node3D owner) { throw new NotImplementedException(); } public virtual EffectData CostEffect(TagsManager tagsManager) { throw new NotImplementedException(); } public virtual EffectData CooldownEffect(TagsManager tagsManager) { throw new NotImplementedException(); } }