Class TargetingStrategy
- Direct Known Subclasses:
CustomTargetingStrategy, ExecutingEntityTargetingStrategy, ExecutingEntityTargetTargetingStrategy, FixedTargetingStrategy, OtherEntityTargetingStrategy
public abstract class TargetingStrategy
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 theTargetingStrategyclass. -
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 TargetingStrategyfixed(ICombatEntity... fixedTargets) Returns a strategy for a fixed list of target entities.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 theTargetingStrategyclass.- 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
ICombatEntityinstances 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
ICombatEntityinstances 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
TargetingStrategyinstance, 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.
-
fixed
Returns a strategy for a fixed list of target entities.- Parameters:
fixedTargets- An array of target entities to always include as the targets.- Returns:
- An instance of
StaticTargetingStrategyinitialized with the given entities.
-
none
Returns a strategy that targets no entities.- Returns:
- A
TargetingStrategythat selects no entities.
-