From 40799f96f6268a92c9d03772adaf2eb19b864152 Mon Sep 17 00:00:00 2001 From: MagicBot Date: Thu, 15 Oct 2026 09:19:36 -0400 Subject: [PATCH] Mark summoned pets with MASK_PET Summoned pets (not necro pets) now carry MASK_PET, so pet-targeted AOE powers can find them. The checkForAggro pet scan is held off with PET_AGGRO_ENABLED until it checks rune enemy lists, filters targets and keeps pet targets (plan-mask-pet.md steps 2-4). Co-Authored-By: Claude Opus 5.5 --- src/engine/mobileAI/MobAI.java | 7 ++++++- src/engine/objects/Mob.java | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/engine/mobileAI/MobAI.java b/src/engine/mobileAI/MobAI.java index e6e1cd08..bf002971 100644 --- a/src/engine/mobileAI/MobAI.java +++ b/src/engine/mobileAI/MobAI.java @@ -44,6 +44,11 @@ public class MobAI { // // CombatManager.class implements shared combat routines for all avatars. + // Pet aggro scan in checkForAggro stays off until it checks rune enemy lists, + // filters its targets and keeps pet targets (MBDATA/docs/plan-mask-pet.md steps 2-4). + + private static final boolean PET_AGGRO_ENABLED = false; + private static void attackTarget(Mob mob, AbstractWorldObject target) { try { @@ -629,7 +634,7 @@ public class MobAI { } } - if (aiAgent.getCombatTarget() == null) { + if (PET_AGGRO_ENABLED && aiAgent.getCombatTarget() == null) { //look for pets to aggro if no players found to aggro diff --git a/src/engine/objects/Mob.java b/src/engine/objects/Mob.java index 946ece4d..a2511d5d 100644 --- a/src/engine/objects/Mob.java +++ b/src/engine/objects/Mob.java @@ -552,6 +552,12 @@ public class Mob extends AbstractIntelligenceAgent implements Delayed { petMinion.despawned = false; petMinion.runAfterLoad(); + + // Summoned pets carry MASK_PET. Necro pets keep their own NecroPet handling. + + if (!petMinion.isNecroPet()) + petMinion.setObjectTypeMask(petMinion.getObjectTypeMask() | MBServerStatics.MASK_PET); + DbManager.addToCache(petMinion); petMinion.setLoc(petMinion.bindLoc);