mourning-ember / src / main / java / dev / llan / model / pieces / player / Player.java
Player.java
Raw
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<Path> activePath);

  Optional<GameEvent> recalculateActivePath();

  void removeActivePath();

  Inventory getInventory();

  Optional<GameEvent> selectCardInHand(int cardIndex);

  Optional<Card> getSelectedCard();

  void setHasAttacked(boolean hasAttacked);

  List<Point> getPointsInRange();

  boolean isInRange(Point point);

  List<GameEvent> onEliminationOf(Entity other);

  @Override
  Player clone(Grid grid);
}