Files
base-demo/src/main/java/com/bartlomiejpluta/demo/ai/AnimalAI.java

42 lines
1.1 KiB
Java

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.api.move.Direction;
import com.bartlomiejpluta.base.lib.ai.*;
import com.bartlomiejpluta.demo.entity.Enemy;
import com.bartlomiejpluta.demo.entity.Creature;
public class AnimalAI implements AI {
private final Enemy animal;
private final Creature creature;
private final int range;
private final AI idleAI;
private final AI runawayAI;
public AnimalAI(Enemy animal, Creature creature, int range) {
this.animal = animal;
this.creature = creature;
this.range = range;
this.idleAI = new RandomMovementAI<>(animal, 4);
this.runawayAI = new RunawayAI<>(animal, creature);
}
@Override
public void nextActivity(ObjectLayer layer, float dt) {
if(animal.isMoving()) {
return;
}
var distance = animal.manhattanDistance(creature);
if(animal.getHp() < animal.getMaxHp() && distance < range) {
runawayAI.nextActivity(layer, dt);
return;
}
idleAI.nextActivity(layer, dt);
}
}