From cd900d6e2e49e8e21daddbb80189902bd3a70448 Mon Sep 17 00:00:00 2001 From: FatBoy-DOTC Date: Tue, 5 Mar 2024 20:32:09 -0600 Subject: [PATCH] slot NPC fix --- src/engine/gameManager/BuildingManager.java | 34 ++----------------- .../handlers/ActivateNPCMsgHandler.java | 1 - src/engine/objects/Blueprint.java | 9 +++-- 3 files changed, 6 insertions(+), 38 deletions(-) diff --git a/src/engine/gameManager/BuildingManager.java b/src/engine/gameManager/BuildingManager.java index 19c42471..8aeca6bb 100644 --- a/src/engine/gameManager/BuildingManager.java +++ b/src/engine/gameManager/BuildingManager.java @@ -520,40 +520,10 @@ public enum BuildingManager { if (building.getBlueprintUUID() == 0) return false; - if (building.getBlueprint().getMaxSlots() == building.getHirelings().size() && building.getBlueprint().getBuildingGroup().equals(BuildingGroup.TOL) == false) - return false; - - int availableSlots = 0; - if(building.getBlueprint().getBuildingGroup().equals(BuildingGroup.TOL)){ - switch (building.getRank()) { - - case 1: - case 2: - availableSlots = 1; - break; - case 3: - case 4: - case 5: - availableSlots = 2; - break; - case 6: - case 7: - availableSlots = 3; - break; - case 8: - availableSlots = 3; - break; - default: - availableSlots = 0; - break; - } - - availableSlots += 1; - } - if (availableSlots == building.getHirelings().size()){ + if (building.getBlueprint().getSlotsForRank(building.getRank()) == building.getHirelings().size()) { + Logger.error("failed at addHireling with contract: " + contract.getContractID()); return false; } - String pirateName = NPCManager.getPirateName(contract.getMobbaseID()); if (item.getChargesRemaining() > 0) diff --git a/src/engine/net/client/handlers/ActivateNPCMsgHandler.java b/src/engine/net/client/handlers/ActivateNPCMsgHandler.java index 713147da..15310704 100644 --- a/src/engine/net/client/handlers/ActivateNPCMsgHandler.java +++ b/src/engine/net/client/handlers/ActivateNPCMsgHandler.java @@ -100,7 +100,6 @@ public class ActivateNPCMsgHandler extends AbstractClientMsgHandler { if (contractItem == null) return false; - if (msg.getContractItem() == 850) {//runemaster for (AbstractCharacter abs : building.getHirelings().keySet()) { NPC npc = (NPC) abs; diff --git a/src/engine/objects/Blueprint.java b/src/engine/objects/Blueprint.java index 5d9774ba..ac6e7786 100644 --- a/src/engine/objects/Blueprint.java +++ b/src/engine/objects/Blueprint.java @@ -181,9 +181,6 @@ public class Blueprint { public int getMaxSlots() { if (this.buildingGroup != null && this.buildingGroup.equals(BuildingGroup.BARRACK)) return 1; - if (this.buildingGroup != null && this.buildingGroup.equals(BuildingGroup.TOL)){ - return 4; - } return maxSlots; } @@ -319,7 +316,7 @@ public class Blueprint { if (this.maxSlots <= 1 && this.buildingGroup.equals(BuildingGroup.TOL) == false) return maxSlots; - if (this.maxRank == 1 && currentRank == 1 && this.buildingGroup.equals(BuildingGroup.TOL) == false) + if (this.maxRank == 1 && currentRank == 1&& this.buildingGroup.equals(BuildingGroup.TOL) == false) return getMaxSlots(); switch (currentRank) { @@ -335,11 +332,13 @@ public class Blueprint { break; case 6: case 7: + availableSlots = 3; + break; case 8: availableSlots = 3; break; default: - availableSlots = 1; + availableSlots = 0; break; } if(this.buildingGroup.equals(BuildingGroup.TOL)){