using PkmnLib.Dynamic.Libraries; using PkmnLib.Dynamic.Models; using PkmnLib.Static.Utils; namespace PkmnLib.Dynamic.ScriptHandling; public abstract class Script { private bool _markedForDeletion; private int _suppressCount; public abstract string Name { get; } public bool MarkForDeletion() => _markedForDeletion = true; public bool IsMarkedForDeletion() => _markedForDeletion; public int SuppressCount() => _suppressCount; public bool IsSuppressed() => _suppressCount > 0; public void Suppress() => _suppressCount++; public void Unsuppress() => _suppressCount--; public virtual void Stack() { } public virtual void OnRemove() { } public virtual void OnInitialize(IDynamicLibrary library, IReadOnlyDictionary parameters) { } public virtual void ChangeStabModifier(IExecutingMove executingMove, IPokemon target, byte hitNumber, ref float modifier) { } }