using System; using System.Collections.Concurrent; using WingsEmu.Packets.Enums; namespace WingsEmu.Game.Skills; public interface ISkillCooldownComponent { public ConcurrentQueue<(DateTime time, short castId)> SkillCooldowns { get; } public ConcurrentQueue<(DateTime time, short castId, MateType mateType)> MatesSkillCooldowns { get; } public void AddSkillCooldown(DateTime time, short castId); public void ClearSkillCooldowns(); public void AddMateSkillCooldown(DateTime time, short castId, MateType mateType); public void ClearMateSkillCooldowns(); } public interface IEntitySkillFactory { INpcMonsterSkill CreateNpcMonsterSkill(int skillVnum, short rate, bool isBasicAttack, bool isIgnoringHitChance); }