mourning-ember / src / main / java / dev / llan / model / pieces / enemies / Enemy.java
Enemy.java
Raw
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);
}