using System; using System.Collections.Generic; using WingsEmu.Game.Entities; using WingsEmu.Game.Helpers.Damages; namespace WingsEmu.Game._ECS.Systems; public interface INpcSystem { IReadOnlyList GetAliveNpcs(); IReadOnlyList GetAliveNpcs(Func predicate); IReadOnlyList GetPassiveNpcs(); IReadOnlyList GetAliveNpcsInRange(Position pos, short distance, Func predicate); IReadOnlyList GetAliveNpcsInRange(Position pos, short distance); IReadOnlyList GetClosestNpcsInRange(Position pos, short distance); void NpcRefreshTarget(INpcEntity npcEntity, IBattleEntity target); INpcEntity GetNpcById(long id); void AddNpc(INpcEntity entity); void RemoveNpc(INpcEntity entity); }