seeAndMoveToAttackRange method
void
seeAndMoveToAttackRange({})
Checks whether the player is within range. If so, move to it.
Implementation
void seeAndMoveToAttackRange({
required Function(Player) positioned,
double radiusVision = 32,
double? minDistanceFromPlayer,
bool runOnlyVisibleInScreen = true,
}) {
if (isDead) return;
seePlayer(
radiusVision: radiusVision,
observed: (player) {
this.positionsItselfAndKeepDistance(
player,
minDistanceFromPlayer: minDistanceFromPlayer,
radiusVision: radiusVision,
runOnlyVisibleInScreen: runOnlyVisibleInScreen,
positioned: (player) {
final playerDirection = this.getComponentDirectionFromMe(player);
lastDirection = playerDirection;
if (lastDirection == Direction.left ||
lastDirection == Direction.right) {
lastDirectionHorizontal = lastDirection;
}
idle();
positioned(player as Player);
},
);
},
notObserved: () {
if (!this.isIdle) {
this.idle();
}
},
);
}