simpleAttackRange method

void simpleAttackRange({
  1. required Future<SpriteAnimation> animationUp,
  2. required Future<SpriteAnimation> animationDestroy,
  3. required double width,
  4. required double height,
  5. double? radAngleDirection,
  6. int? id,
  7. double speed = 150,
  8. double damage = 1,
  9. int interval = 1000,
  10. bool withCollision = true,
  11. VoidCallback? onDestroy,
  12. CollisionConfig? collision,
  13. VoidCallback? onExecute,
  14. LightingConfig? lightingConfig,
})

Execute the ranged attack using a component with animation

Implementation

void simpleAttackRange({
  required Future<SpriteAnimation> animationUp,
  required Future<SpriteAnimation> animationDestroy,
  required double width,
  required double height,
  double? radAngleDirection,
  int? id,
  double speed = 150,
  double damage = 1,
  int interval = 1000,
  bool withCollision = true,
  VoidCallback? onDestroy,
  CollisionConfig? collision,
  VoidCallback? onExecute,
  LightingConfig? lightingConfig,
}) {
  if (!this.checkInterval('attackRange', interval, dtUpdate)) return;

  if (isDead) return;

  this.simpleAttackRangeByAngle(
    animationUp: animationUp,
    animationDestroy: animationDestroy,
    width: width,
    height: height,
    radAngleDirection: radAngleDirection ?? this.currentRadAngle,
    id: id,
    speed: speed,
    damage: damage,
    withCollision: withCollision,
    onDestroy: onDestroy,
    collision: collision,
    lightingConfig: lightingConfig,
  );

  onExecute?.call();
}