Refactored out duplicate resource type.

This commit is contained in:
2024-03-14 14:47:20 -04:00
parent b6eb587a82
commit 4646d03bdd
10 changed files with 96 additions and 157 deletions
+16 -13
View File
@@ -11,7 +11,10 @@ package engine.objects;
import engine.Enum;
import engine.InterestManagement.WorldGrid;
import engine.gameManager.*;
import engine.gameManager.BuildingManager;
import engine.gameManager.ChatManager;
import engine.gameManager.DbManager;
import engine.gameManager.ZoneManager;
import engine.net.ByteBufferWriter;
import engine.net.client.msg.ErrorPopupMsg;
import engine.server.MBServerStatics;
@@ -42,7 +45,7 @@ public class Mine extends AbstractGameObject {
public GuildTag guildTag;
public String nationName;
public GuildTag nationTag;
private Resource production;
private Enum.ResourceType production;
private Guild owningGuild;
private int flags;
private int buildingID;
@@ -85,7 +88,7 @@ public class Mine extends AbstractGameObject {
this.nationTag = GuildTag.ERRANT;
}
this.production = Resource.valueOf(rs.getString("mine_resource"));
this.production = Enum.ResourceType.valueOf(rs.getString("mine_resource"));
this.lastClaimer = null;
}
@@ -164,7 +167,7 @@ public class Mine extends AbstractGameObject {
writer.putString(mine.mineType.name);
writer.putString(mine.zoneName);
writer.putInt(mine.production.hash);
writer.putInt(mine.production.baseProduction);
writer.putInt(mine.production.mine_production);
writer.putInt(mine.getModifiedProductionAmount()); //TODO calculate range penalty here
writer.putInt(3600); //window in seconds
@@ -307,7 +310,7 @@ public class Mine extends AbstractGameObject {
return mineCnt <= tolRank;
}
public boolean changeProductionType(Resource resource) {
public boolean changeProductionType(Enum.ResourceType resource) {
if (!this.validForMine(resource))
return false;
//update resource in database;
@@ -330,7 +333,7 @@ public class Mine extends AbstractGameObject {
return this.zoneName;
}
public Resource getProduction() {
public Enum.ResourceType getProduction() {
return this.production;
}
@@ -377,7 +380,7 @@ public class Mine extends AbstractGameObject {
building.isDeranking.compareAndSet(true, false);
}
public boolean validForMine(Resource r) {
public boolean validForMine(Enum.ResourceType r) {
if (this.mineType == null)
return false;
return this.mineType.validForMine(r, this.isExpansion());
@@ -391,7 +394,7 @@ public class Mine extends AbstractGameObject {
writer.putString(this.mineType.name);
writer.putString(this.zoneName);
writer.putInt(this.production.hash);
writer.putInt(this.production.baseProduction);
writer.putInt(this.production.mine_production);
writer.putInt(this.getModifiedProductionAmount()); //TODO calculate range penalty here
writer.putInt(3600); //window in seconds
writer.putInt(this.isExpansion() ? this.mineType.xpacHash : this.mineType.hash);
@@ -479,7 +482,7 @@ public class Mine extends AbstractGameObject {
if (this.owningGuild.getOwnedCity().getWarehouse() == null)
return false;
ItemBase resourceIB = ItemBase.getItemBase(this.production.UUID);
ItemBase resourceIB = ItemBase.getItemBase(this.production.templateID);
return Warehouse.depositFromMine(this, resourceIB, this.getModifiedProductionAmount(),this.owningGuild.getOwnedCity().getWarehouse());
}
@@ -538,15 +541,15 @@ public class Mine extends AbstractGameObject {
//TODO Calculate Distance modifications.
//calculate base values.
int baseProduction = this.production.baseProduction;
float baseModValue = this.production.baseProduction * .1f;
float rankModValue = this.production.baseProduction * .0143f;
int baseProduction = this.production.mine_production;
float baseModValue = this.production.mine_production * .1f;
float rankModValue = this.production.mine_production * .0143f;
float totalModded = 0;
//get Mine Building.
Building mineBuilding = BuildingManager.getBuilding(this.buildingID);
if (mineBuilding == null)
return this.production.baseProduction;
return this.production.mine_production;
for (AbstractCharacter harvester : mineBuilding.getHirelings().keySet()) {
totalModded += baseModValue;
totalModded += rankModValue * harvester.getRank();