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 generateActions(GameMap map, Player player, CombatPhase phase); void notifyNearbyEnemies(List others, Set notified); @Override Enemy clone(Grid grid); }