forked from MagicBane/Server
Minions now use copyonwrite collection. Slot agnostic.
This commit is contained in:
@@ -122,37 +122,39 @@ public enum NPCManager {
|
||||
|
||||
public static void removeSiegeMinions(Mob mobile) {
|
||||
|
||||
for (Mob toRemove : mobile.siegeMinionMap.keySet()) {
|
||||
for (Integer minionUUID : mobile.minions) {
|
||||
|
||||
Mob siegeMinion = Mob.getMob(minionUUID);
|
||||
|
||||
if (mobile.isMoving()) {
|
||||
|
||||
mobile.stopMovement(mobile.getLoc());
|
||||
|
||||
if (toRemove.parentZone != null)
|
||||
toRemove.parentZone.zoneMobSet.remove(toRemove);
|
||||
if (siegeMinion.parentZone != null)
|
||||
siegeMinion.parentZone.zoneMobSet.remove(siegeMinion);
|
||||
}
|
||||
|
||||
try {
|
||||
toRemove.clearEffects();
|
||||
siegeMinion.clearEffects();
|
||||
} catch (Exception e) {
|
||||
Logger.error(e.getMessage());
|
||||
}
|
||||
|
||||
if (toRemove.parentZone != null)
|
||||
toRemove.parentZone.zoneMobSet.remove(toRemove);
|
||||
if (siegeMinion.parentZone != null)
|
||||
siegeMinion.parentZone.zoneMobSet.remove(siegeMinion);
|
||||
|
||||
WorldGrid.RemoveWorldObject(toRemove);
|
||||
WorldGrid.removeObject(toRemove);
|
||||
DbManager.removeFromCache(toRemove);
|
||||
WorldGrid.RemoveWorldObject(siegeMinion);
|
||||
WorldGrid.removeObject(siegeMinion);
|
||||
DbManager.removeFromCache(siegeMinion);
|
||||
|
||||
|
||||
PlayerCharacter petOwner = (PlayerCharacter) toRemove.guardCaptain;
|
||||
PlayerCharacter petOwner = (PlayerCharacter) siegeMinion.guardCaptain;
|
||||
|
||||
if (petOwner != null) {
|
||||
|
||||
petOwner.setPet(null);
|
||||
|
||||
toRemove.guardCaptain = null;
|
||||
siegeMinion.guardCaptain = null;
|
||||
|
||||
PetMsg petMsg = new PetMsg(5, null);
|
||||
Dispatch dispatch = Dispatch.borrow(petOwner, petMsg);
|
||||
@@ -263,7 +265,7 @@ public enum NPCManager {
|
||||
|
||||
if (abstractCharacter.getObjectType().equals(Enum.GameObjectType.Mob) && ((Mob) abstractCharacter).behaviourType.equals(Enum.MobBehaviourType.SiegeEngine)) {
|
||||
Mob siegeMobile = (Mob) abstractCharacter;
|
||||
buildingSlot = siegeMobile.guardCaptain.siegeMinionMap.size() + 2;
|
||||
buildingSlot = siegeMobile.guardCaptain.minions.size() + 2;
|
||||
}
|
||||
|
||||
if (buildingSlot == -1)
|
||||
|
||||
Reference in New Issue
Block a user