Class CombinedAttackGoal
java.lang.Object
net.minestom.server.entity.ai.GoalSelector
net.minestom.server.entity.ai.goal.CombinedAttackGoal
Allows entity to perform both melee and ranged attacks.
-
Field Summary
Fields inherited from class net.minestom.server.entity.ai.GoalSelector
entityCreature
-
Constructor Summary
ConstructorDescriptionCombinedAttackGoal
(@NotNull EntityCreature entityCreature, int meleeRange, int rangedRange, double rangedPower, double rangedSpread, int delay, TemporalUnit timeUnit, int desirableRange, boolean comeClose) CombinedAttackGoal
(@NotNull EntityCreature entityCreature, int meleeRange, int rangedRange, double rangedPower, double rangedSpread, Duration delay, int desirableRange, boolean comeClose) CombinedAttackGoal
(@NotNull EntityCreature entityCreature, int meleeRange, int meleeDelay, TemporalUnit meleeTimeUnit, int rangedRange, double rangedPower, double rangedSpread, int rangedDelay, TemporalUnit rangedTimeUnit, int desirableRange, boolean comeClose) CombinedAttackGoal
(@NotNull EntityCreature entityCreature, int meleeRange, Duration meleeDelay, int rangedRange, double rangedPower, double rangedSpread, Duration rangedDelay, int desirableRange, boolean comeClose) -
Method Summary
Modifier and TypeMethodDescriptionvoid
end()
Ends thisGoalSelector
.void
setProjectileGenerator
(Function<Entity, EntityProjectile> projectileGenerator) boolean
Whether or not thisGoalSelector
should end.boolean
Whether or not thisGoalSelector
should start.void
start()
Starts thisGoalSelector
.void
tick
(long time) Called every tick when thisGoalSelector
is running.Methods inherited from class net.minestom.server.entity.ai.GoalSelector
findTarget, getAIGroup, getEntityCreature, setEntityCreature
-
Constructor Details
-
CombinedAttackGoal
public CombinedAttackGoal(@NotNull @NotNull EntityCreature entityCreature, int meleeRange, int rangedRange, double rangedPower, double rangedSpread, int delay, TemporalUnit timeUnit, int desirableRange, boolean comeClose) - Parameters:
entityCreature
- the entity to add the goal to.meleeRange
- the allowed range the entity can hit others in melee.rangedRange
- the allowed range the entity can shoot others.rangedPower
- shot power (1 for normal).rangedSpread
- shot spread (0 for best accuracy).delay
- the delay between any attacks.timeUnit
- the unit of the delay.desirableRange
- the desirable range: the entity will try to stay no further than this distance.comeClose
- if entity should go as close as possible to the target whether target is not in line of sight for a ranged attack.
-
CombinedAttackGoal
public CombinedAttackGoal(@NotNull @NotNull EntityCreature entityCreature, int meleeRange, int rangedRange, double rangedPower, double rangedSpread, Duration delay, int desirableRange, boolean comeClose) - Parameters:
entityCreature
- the entity to add the goal to.meleeRange
- the allowed range the entity can hit others in melee.rangedRange
- the allowed range the entity can shoot others.rangedPower
- shot power (1 for normal).rangedSpread
- shot spread (0 for best accuracy).delay
- the delay between any attacks.desirableRange
- the desirable range: the entity will try to stay no further than this distance.comeClose
- if entity should go as close as possible to the target whether target is not in line of sight for a ranged attack.
-
CombinedAttackGoal
public CombinedAttackGoal(@NotNull @NotNull EntityCreature entityCreature, int meleeRange, int meleeDelay, TemporalUnit meleeTimeUnit, int rangedRange, double rangedPower, double rangedSpread, int rangedDelay, TemporalUnit rangedTimeUnit, int desirableRange, boolean comeClose) - Parameters:
entityCreature
- the entity to add the goal to.meleeRange
- the allowed range the entity can hit others in melee.meleeDelay
- the delay between melee attacks.meleeTimeUnit
- the unit of the melee delay.rangedRange
- the allowed range the entity can shoot others.rangedPower
- shot power (1 for normal).rangedSpread
- shot spread (0 for best accuracy).rangedDelay
- the delay between ranged attacks.rangedTimeUnit
- the unit of the ranged delay.desirableRange
- the desirable range: the entity will try to stay no further than this distance.comeClose
- if entity should go as close as possible to the target whether target is not in line of sight for a ranged attack.
-
CombinedAttackGoal
public CombinedAttackGoal(@NotNull @NotNull EntityCreature entityCreature, int meleeRange, Duration meleeDelay, int rangedRange, double rangedPower, double rangedSpread, Duration rangedDelay, int desirableRange, boolean comeClose) - Parameters:
entityCreature
- the entity to add the goal to.meleeRange
- the allowed range the entity can hit others in melee.meleeDelay
- the delay between melee attacks.rangedRange
- the allowed range the entity can shoot others.rangedPower
- shot power (1 for normal).rangedSpread
- shot spread (0 for best accuracy).rangedDelay
- the delay between ranged attacks.desirableRange
- the desirable range: the entity will try to stay no further than this distance.comeClose
- if entity should go as close as possible to the target whether target is not in line of sight for a ranged attack.
-
-
Method Details
-
getCooldown
-
setProjectileGenerator
-
shouldStart
public boolean shouldStart()Description copied from class:GoalSelector
Whether or not thisGoalSelector
should start.- Specified by:
shouldStart
in classGoalSelector
- Returns:
- true to start
-
start
public void start()Description copied from class:GoalSelector
Starts thisGoalSelector
.- Specified by:
start
in classGoalSelector
-
tick
public void tick(long time) Description copied from class:GoalSelector
Called every tick when thisGoalSelector
is running.- Specified by:
tick
in classGoalSelector
- Parameters:
time
- the time of the update in milliseconds
-
shouldEnd
public boolean shouldEnd()Description copied from class:GoalSelector
Whether or not thisGoalSelector
should end.- Specified by:
shouldEnd
in classGoalSelector
- Returns:
- true to end
-
end
public void end()Description copied from class:GoalSelector
Ends thisGoalSelector
.- Specified by:
end
in classGoalSelector
-