mob ai work

This commit is contained in:
2025-01-08 17:53:46 -06:00
parent b3026c9cab
commit 033f7c9ccf
+24 -9
View File
@@ -22,6 +22,19 @@ public class MobAi2 {
Attacking,
Dead
}
public static boolean Agressive(Mob mob){
return mob.BehaviourType.name().contains("Aggro");
}
public static boolean Caster(Mob mob){
return mob.BehaviourType.name().contains("Power");
}
public static boolean HelpResponder(Mob mob){
return mob.BehaviourType.name().contains("Helpee");
}
public static State getState(Mob mob){
if(!mob.isAlive())
@@ -108,14 +121,16 @@ public class MobAi2 {
//handles patrolling and looking for potential combat targets
public static void patrol(Mob mob){
HashSet<AbstractWorldObject> potentialTargets = WorldGrid.getObjectsInRangePartial(mob.loc, Float.parseFloat(ConfigManager.MB_AI_AGGRO_RANGE.getValue()), MBServerStatics.MASK_PLAYER);
for(AbstractWorldObject awo : potentialTargets){
PlayerCharacter target = (PlayerCharacter) awo;
if(mob.canSee(target))
mob.setCombatTarget(target);
if(mob.combatTarget != null) {
mob.stopMovement(mob.getMovementLoc());
return;
if(Agressive(mob) && mob.combatTarget == null) {
HashSet<AbstractWorldObject> potentialTargets = WorldGrid.getObjectsInRangePartial(mob.loc, 50, MBServerStatics.MASK_PLAYER);
for (AbstractWorldObject awo : potentialTargets) {
PlayerCharacter target = (PlayerCharacter) awo;
if (mob.canSee(target))
mob.setCombatTarget(target);
if (mob.combatTarget != null) {
mob.stopMovement(mob.getMovementLoc());
return;
}
}
}
if(mob.isMoving() || !mob.BehaviourType.canRoam)
@@ -337,7 +352,7 @@ public class MobAi2 {
Zone mobCamp = mob.getParentZone();
for (Mob helper : mobCamp.zoneMobSet) {
if (helper.BehaviourType.respondsToCallForHelp && helper.BehaviourType.BehaviourHelperType.equals(mob.BehaviourType)) {
if (HelpResponder(helper)) {
helper.setCombatTarget(mob.getCombatTarget());
break;
}