using Godot;
using Mr.BrickAdventures.scripts.Resources;
namespace Mr.BrickAdventures.scripts.interfaces;
public interface ISkill
{
///
/// Sets the skill up on its owner at a given level.
///
///
/// How far this skill is upgraded. Passed in rather than read from : the
/// level belongs to the Playthrough, whereas SkillData is a shared cached resource — one
/// instance per process — so keeping it there never persisted and would leak between save slots.
///
void Initialize(Node owner, SkillData data, int level);
void Activate();
void Deactivate();
void ApplyUpgrade(SkillUpgrade upgrade);
}