package dev.llan.model.pieces.enemies;
import dev.llan.model.board.GameMap;
import dev.llan.model.board.Grid;
import dev.llan.model.board.Point;
import dev.llan.model.pieces.Entity;
import dev.llan.model.pieces.player.Player;
import dev.llan.model.state.combat.actions.Action;
import dev.llan.model.state.combat.CombatManager.CombatPhase;
import java.util.List;
import java.util.Set;
public interface Enemy extends Entity, Cloneable {
boolean withinRadius(Point playerPos);
boolean inCombat();
void setInCombat();
List<Action> generateActions(GameMap map, Player player, CombatPhase phase);
void notifyNearbyEnemies(List<Enemy> others, Set<Enemy> notified);
@Override
Enemy clone(Grid grid);
}