24 lines
621 B
Dart
24 lines
621 B
Dart
import 'package:wolf_dart/classes/entity.dart';
|
|
import 'package:wolf_dart/classes/linear_coordinates.dart';
|
|
|
|
abstract class Enemy extends Entity {
|
|
Enemy({
|
|
required super.x,
|
|
required super.y,
|
|
required super.spriteIndex,
|
|
super.angle,
|
|
super.state,
|
|
super.mapId,
|
|
super.lastActionTime,
|
|
});
|
|
|
|
// Every enemy must implement its own brain!
|
|
void update({
|
|
required int elapsedMs,
|
|
required LinearCoordinates player,
|
|
required bool Function(int x, int y) isWalkable,
|
|
required bool Function(Entity entity) hasLineOfSight,
|
|
required void Function(int damage) onDamagePlayer,
|
|
});
|
|
}
|