forked from MagicBane/Server
Refactored out duplicate resource type.
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user