package dev.llan.model.pieces.player; import dev.llan.model.board.Grid; import dev.llan.model.board.Point; import dev.llan.model.board.pathfinding.Path; import dev.llan.events.GameEvent; import dev.llan.model.cards.Card; import dev.llan.model.pieces.Entity; import dev.llan.model.pieces.attributes.inventory.Inventory; import java.util.List; import java.util.Optional; public interface Player extends Entity { GameEvent setActivePath(Optional activePath); Optional recalculateActivePath(); void removeActivePath(); Inventory getInventory(); Optional selectCardInHand(int cardIndex); Optional getSelectedCard(); void setHasAttacked(boolean hasAttacked); List getPointsInRange(); boolean isInRange(Point point); List onEliminationOf(Entity other); @Override Player clone(Grid grid); }