mourning-ember / src / main / java / dev / llan / model / pieces / Entity.java
Entity.java
Raw
package dev.llan.model.pieces;

import dev.llan.model.board.Grid;
import dev.llan.model.board.Point;
import dev.llan.model.board.pathfinding.Path;
import dev.llan.model.cards.CardCollection;
import dev.llan.model.pieces.attributes.effects.EffectCover;
import dev.llan.model.pieces.attributes.effects.EffectRecord;
import dev.llan.model.pieces.attributes.modifiers.ModifierCover;
import dev.llan.model.pieces.attributes.stats.Stats;
import dev.llan.model.state.combat.TurnInfo;
import javafx.scene.image.Image;

import java.util.Optional;
import java.util.List;

public interface Entity extends Piece {
  void addHealth(double delta);

  void reduceHealth(double delta);

  void reduceMana(double delta);

  Stats getStats();

  ModifierCover getModifiers();

  EffectCover getEffects();

  CardCollection getCollection();

  boolean canMove(double movementCost);

  void reduceMovement(double movement);

  Optional<Path> generateActivePath(Point desiredPoint);

  Optional<Path> getActivePath();

  void setHasAttacked(boolean hasAttacked);

  void onNextCombatRound();

  Image getImage();

  Image getIcon();

  String[] getNotes();

  TurnInfo getTurnInfo();

  List<EffectRecord> getClonedEffects();

  Entity clone(Grid grid);
}