20 lines
No EOL
819 B
C#
20 lines
No EOL
819 B
C#
using System;
|
|
using System.Collections.Generic;
|
|
using WingsEmu.Game.Entities;
|
|
using WingsEmu.Game.Helpers.Damages;
|
|
|
|
namespace WingsEmu.Game._ECS.Systems;
|
|
|
|
public interface INpcSystem
|
|
{
|
|
IReadOnlyList<INpcEntity> GetAliveNpcs();
|
|
IReadOnlyList<INpcEntity> GetAliveNpcs(Func<INpcEntity, bool> predicate);
|
|
IReadOnlyList<INpcEntity> GetPassiveNpcs();
|
|
IReadOnlyList<INpcEntity> GetAliveNpcsInRange(Position pos, short distance, Func<INpcEntity, bool> predicate);
|
|
IReadOnlyList<INpcEntity> GetAliveNpcsInRange(Position pos, short distance);
|
|
IReadOnlyList<INpcEntity> GetClosestNpcsInRange(Position pos, short distance);
|
|
void NpcRefreshTarget(INpcEntity npcEntity, IBattleEntity target);
|
|
INpcEntity GetNpcById(long id);
|
|
void AddNpc(INpcEntity entity);
|
|
void RemoveNpc(INpcEntity entity);
|
|
} |