Class TargetingStrategy
java.lang.Object
de.gurkenlabs.litiengine.abilities.targeting.TargetingStrategy
- Direct Known Subclasses:
CustomTargetingStrategy,ExecutingEntityTargetingStrategy,ExecutingEntityTargetTargetingStrategy,OtherEntityTargetingStrategy
The abstract class `TargetingStrategy` defines the logic for selecting targets
based on various strategies. It allows for different ways to filter, sort, and
select one or more targets in a game environment based on factors like distance
or custom conditions.
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedTargetingStrategy(boolean multiTarget, boolean sortByDistance) Constructor for the `TargetingStrategy` class. -
Method Summary
Modifier and TypeMethodDescriptionstatic TargetingStrategycustom(BiPredicate<ICombatEntity, ICombatEntity> customPredicate) Returns a strategy that uses a custom condition to filter targets.static TargetingStrategyenemies()Returns a strategy that targets enemy entities.static TargetingStrategyReturns a strategy that targets the entity executing the action.findTargets(Shape impactArea, ICombatEntity executor) Finds and returns a collection of combat entities that match the target criteria defined by the strategy.protected abstract Collection<ICombatEntity> findTargetsInternal(Shape impactArea, ICombatEntity executor) Finds target entities in the impact area.static TargetingStrategyfriendly()Returns a strategy that targets friendly entities.static TargetingStrategyReturns a strategy that targets dead friendly entities.booleanstatic TargetingStrategynone()Returns a strategy that targets no entities.booleanvoidsetCustomTargetPriorityComparator(Comparator<IEntity> customTargetPriorityComparator) voidsetMultiTarget(boolean multiTarget) voidsetPrioritizeByDistance(boolean prioritizeByDistance) withCondition(BiPredicate<ICombatEntity, ICombatEntity> customCondition) Adds a custom condition to the targeting strategy.
-
Constructor Details
-
TargetingStrategy
protected TargetingStrategy(boolean multiTarget, boolean sortByDistance) Constructor for the `TargetingStrategy` class.- Parameters:
multiTarget- Specifies if the strategy supports selecting multiple targets.sortByDistance- Specifies if the strategy should prioritize targets by distance.
-
-
Method Details
-
findTargets
Finds and returns a collection of combat entities that match the target criteria defined by the strategy. This method applies internal logic for finding targets and then optionally filters and sorts them based on the additional condition and distance priority settings.- Parameters:
impactArea- The area where the effect or action is applied.executor- The entity executing the action (e.g., the player or an NPC).- Returns:
- A collection of `ICombatEntity` instances representing the selected targets.
-
findTargetsInternal
protected abstract Collection<ICombatEntity> findTargetsInternal(Shape impactArea, ICombatEntity executor) Finds target entities in the impact area. This is implemented by the individual strategies.- Parameters:
impactArea- The area where the effect is applied.executor- The entity executing the action.- Returns:
- A collection of `ICombatEntity` instances that match the strategy criteria.
-
isMultiTarget
public boolean isMultiTarget() -
setMultiTarget
public void setMultiTarget(boolean multiTarget) -
prioritizeByDistance
public boolean prioritizeByDistance() -
setPrioritizeByDistance
public void setPrioritizeByDistance(boolean prioritizeByDistance) -
setCustomTargetPriorityComparator
-
withCondition
Adds a custom condition to the targeting strategy.- Parameters:
customCondition- A condition that adds further filtering based on the executor and target.- Returns:
- The current `TargetingStrategy` instance, allowing for method chaining.
-
enemies
Returns a strategy that targets enemy entities.- Returns:
- An instance of `EnemyTargetingStrategy`.
-
executingEntity
Returns a strategy that targets the entity executing the action.- Returns:
- An instance of `ExecutingEntityTargetingStrategy`.
-
friendly
Returns a strategy that targets friendly entities.- Returns:
- An instance of `FriendlyTargetingStrategy`.
-
friendlyDead
Returns a strategy that targets dead friendly entities.- Returns:
- An instance of `FriendlyTargetingStrategy`.
-
custom
Returns a strategy that uses a custom condition to filter targets.- Parameters:
customPredicate- A condition to define custom logic for target selection.- Returns:
- An instance of `CustomTargetingStrategy`.
-
none
Returns a strategy that targets no entities.- Returns:
- A `TargetingStrategy` that selects no entities.
-