Contract moved to AbstractCharacter.

Arty tower restricted to a single tower captain.
This commit is contained in:
2023-05-02 15:09:09 -04:00
parent f526bda748
commit 7dcefdf5d7
6 changed files with 16 additions and 7 deletions
+1 -1
View File
@@ -51,7 +51,7 @@ public enum BuildingManager {
for (int i = 1; i <= numOfSlots; i++) { for (int i = 1; i <= numOfSlots; i++) {
// Slot two is reserved on Arty towers for the trebuchet // Slot one is reserved on Arty towers for the trebuchet
if (i == 1 && if (i == 1 &&
building.getBlueprint() != null && building.getBlueprint() != null &&
@@ -49,9 +49,12 @@ public class ActivateNPCMsgHandler extends AbstractClientMsgHandler {
for (Item hirelings : player.getInventory()) { for (Item hirelings : player.getInventory()) {
if (hirelings.getItemBase().getType().equals(ItemType.CONTRACT)) { if (hirelings.getItemBase().getType().equals(ItemType.CONTRACT)) {
contract = DbManager.ContractQueries.GET_CONTRACT(hirelings.getItemBase().getUUID()); contract = DbManager.ContractQueries.GET_CONTRACT(hirelings.getItemBase().getUUID());
if (contract == null) if (contract == null)
continue; continue;
if (contract.canSlotinBuilding(building)) if (contract.canSlotinBuilding(building))
ItemLists.add(hirelings); ItemLists.add(hirelings);
} }
+3 -2
View File
@@ -117,9 +117,10 @@ public abstract class AbstractCharacter extends AbstractWorldObject {
private long lastHateUpdate = 0; private long lastHateUpdate = 0;
private boolean collided = false; private boolean collided = false;
protected Regions lastRegion = null; protected Regions lastRegion = null;
protected boolean movingUp = false; protected boolean movingUp = false;
public Contract contract;
/** /**
* No Id Constructor * No Id Constructor
+8 -2
View File
@@ -254,10 +254,16 @@ public class Contract extends AbstractGameObject {
if (this.allowedBuildings.size() == 0) if (this.allowedBuildings.size() == 0)
return false; return false;
// Restrict arty towers to a single captain
if (this.getContractID() == 842) // Tower Arty Captain
for (AbstractCharacter hireling : building.getHirelings().keySet())
if (hireling.contract.getContractID() == 842)
return false;
// Binary match // Binary match
return (building.getBlueprint().getBuildingGroup().elementOf(this.allowedBuildings)); return (building.getBlueprint().getBuildingGroup().elementOf(this.allowedBuildings));
}
}
public int getEquipmentSet() { public int getEquipmentSet() {
return equipmentSet; return equipmentSet;
-1
View File
@@ -65,7 +65,6 @@ public class Mob extends AbstractIntelligenceAgent {
public int spawnTime; public int spawnTime;
public Zone parentZone; public Zone parentZone;
public Building building; public Building building;
public Contract contract;
public boolean hasLoot = false; public boolean hasLoot = false;
public boolean isPlayerGuard = false; public boolean isPlayerGuard = false;
public AbstractCharacter npcOwner; public AbstractCharacter npcOwner;
+1 -1
View File
@@ -52,7 +52,7 @@ public class NPC extends AbstractCharacter {
protected MobBase mobBase; protected MobBase mobBase;
protected String name; protected String name;
public Building building; public Building building;
protected Contract contract;
protected int dbID; protected int dbID;
protected int currentID; protected int currentID;
private DateTime upgradeDateTime = null; private DateTime upgradeDateTime = null;