Implement simple camp & hunt AI for enemies

This commit is contained in:
2022-08-17 23:45:41 +02:00
parent 8dcbf5a972
commit 1eda877a09
6 changed files with 48 additions and 2 deletions

View File

@@ -0,0 +1,27 @@
package com.bartlomiejpluta.demo.ai;
import lombok.*;
import com.bartlomiejpluta.base.api.map.layer.object.ObjectLayer;
import com.bartlomiejpluta.base.api.ai.*;
import com.bartlomiejpluta.base.lib.ai.*;
import com.bartlomiejpluta.demo.entity.Enemy;
import com.bartlomiejpluta.demo.entity.Character;
@AllArgsConstructor
public class SimpleSniperAI implements AI {
private final Enemy enemy;
private Character target;
private int range;
@Override
public void nextActivity(ObjectLayer layer, float dt) {
var enemyCoords = enemy.getCoordinates();
var targetCoords = target.getCoordinates();
if(enemy.manhattanDistance(target) <= range && (enemyCoords.x() == targetCoords.x() || enemyCoords.y() == targetCoords.y())) {
var direction = enemy.getDirectionTowards(target);
enemy.setFaceDirection(direction);
enemy.attack();
}
}
}