simpleAttackRange method

void simpleAttackRange({
  1. required Future<SpriteAnimation> animationRight,
  2. required Future<SpriteAnimation> animationLeft,
  3. required Future<SpriteAnimation> animationUp,
  4. required Future<SpriteAnimation> animationDown,
  5. required Future<SpriteAnimation> animationDestroy,
  6. required Vector2 size,
  7. Vector2? destroySize,
  8. int? id,
  9. double speed = 150,
  10. double damage = 1,
  11. Direction? direction,
  12. int interval = 1000,
  13. bool withCollision = true,
  14. bool enableDiagonal = true,
  15. CollisionConfig? collision,
  16. VoidCallback? onDestroy,
  17. VoidCallback? execute,
  18. LightingConfig? lightingConfig,
})

Execute the ranged attack using a component with animation

Implementation

void simpleAttackRange({
  required Future<SpriteAnimation> animationRight,
  required Future<SpriteAnimation> animationLeft,
  required Future<SpriteAnimation> animationUp,
  required Future<SpriteAnimation> animationDown,
  required Future<SpriteAnimation> animationDestroy,
  required Vector2 size,
  Vector2? destroySize,
  int? id,
  double speed = 150,
  double damage = 1,
  Direction? direction,
  int interval = 1000,
  bool withCollision = true,
  bool enableDiagonal = true,
  CollisionConfig? collision,
  VoidCallback? onDestroy,
  VoidCallback? execute,
  LightingConfig? lightingConfig,
}) {
  if (!this.checkInterval('attackRange', interval, dtUpdate)) return;

  if (isDead) return;

  Direction direct = direction ?? getComponentDirectionFromMe(gameRef.player);

  this.simpleAttackRangeByDirection(
    animationRight: animationRight,
    animationLeft: animationLeft,
    animationUp: animationUp,
    animationDown: animationDown,
    animationDestroy: animationDestroy,
    size: size,
    direction: direct,
    id: id,
    speed: speed,
    damage: damage,
    withCollision: withCollision,
    collision: collision,
    onDestroy: onDestroy,
    destroySize: destroySize,
    lightingConfig: lightingConfig,
    enableDiagonal: enableDiagonal,
    attackFrom: AttackFromEnum.ENEMY,
  );

  if (execute != null) execute();
}