@ -332,6 +332,11 @@ public class MobileFSM {
@@ -332,6 +332,11 @@ public class MobileFSM {
public static void DetermineAction ( Mob mob ) {
if ( mob = = null )
return ;
//pet cleanup for errant pets
if ( mob . BehaviourType . ordinal ( ) = = Enum . MobBehaviourType . Pet1 . ordinal ( ) & & mob . getOwner ( ) = = null & & mob . isSiege ( ) = = false ) {
mob . despawn ( ) ;
WorldGrid . removeObject ( mob ) ;
}
if ( mob . despawned & & mob . getMobBase ( ) . getLoadID ( ) = = 13171 ) {
//trebuchet spawn handler
CheckForRespawn ( mob ) ;
@ -358,7 +363,7 @@ public class MobileFSM {
@@ -358,7 +363,7 @@ public class MobileFSM {
CheckForRespawn ( mob ) ;
return ;
}
if ( mob . playerAgroMap . isEmpty ( ) & & mob . isPlayerGuard = = false )
if ( mob . playerAgroMap . isEmpty ( ) & & mob . isPlayerGuard = = false & & mob . BehaviourType . ordinal ( ) ! = Enum . MobBehaviourType . Pet1 . ordinal ( ) )
//no players loaded, no need to proceed
return ;
if ( mob . isCombat ( ) & & mob . getCombatTarget ( ) = = null ) {
@ -368,7 +373,9 @@ public class MobileFSM {
@@ -368,7 +373,9 @@ public class MobileFSM {
DispatchMessage . sendToAllInRange ( mob , rwss ) ;
}
mob . updateLocation ( ) ;
CheckToSendMobHome ( mob ) ;
if ( mob . BehaviourType . ordinal ( ) ! = Enum . MobBehaviourType . Pet1 . ordinal ( ) ) {
CheckToSendMobHome ( mob ) ;
}
if ( mob . combatTarget ! = null & & mob . combatTarget . isAlive ( ) = = false ) {
mob . setCombatTarget ( null ) ;
}
@ -568,10 +575,10 @@ public class MobileFSM {
@@ -568,10 +575,10 @@ public class MobileFSM {
private static void chaseTarget ( Mob mob ) {
mob . updateMovementState ( ) ;
if ( mob . playerAgroMap . containsKey ( mob . getCombatTarget ( ) . getObjectUUID ( ) ) = = false ) {
mob . setCombatTarget ( null ) ;
return ;
}
//if (mob.playerAgroMap.containsKey(mob.getCombatTarget().getObjectUUID()) == false) {
// mob.setCombatTarget(null);
// return;
//}
if ( CombatUtilities . inRange2D ( mob , mob . getCombatTarget ( ) , mob . getRange ( ) ) = = false ) {
if ( mob . getRange ( ) > 15 ) {
mob . destination = mob . getCombatTarget ( ) . getLoc ( ) ;