|
|
|
@ -131,16 +131,14 @@ public enum ForgeManager implements Runnable {
@@ -131,16 +131,14 @@ public enum ForgeManager implements Runnable {
|
|
|
|
|
public static long calcRollingDuration(WorkOrder workOrder) { |
|
|
|
|
|
|
|
|
|
long rollingDuration; |
|
|
|
|
float rank = workOrder.vendor.getBuilding().getRank() - 1; |
|
|
|
|
float rate = (float) (2.5 * rank); |
|
|
|
|
float rate = (float) (2.5 * (workOrder.vendor.getBuilding().getRank() - 1)); |
|
|
|
|
float baseTime = (20 - rate) * 60000; |
|
|
|
|
ItemTemplate template = ItemTemplate.templates.get(workOrder.templateID); |
|
|
|
|
|
|
|
|
|
// Bane circles
|
|
|
|
|
|
|
|
|
|
if (workOrder.templateID > 910010 && workOrder.templateID < 910019) { |
|
|
|
|
rank = workOrder.templateID - 910010; |
|
|
|
|
baseTime = rank * 60 * 60 * 3 * 1000; |
|
|
|
|
} |
|
|
|
|
if (template.item_bane_rank > 0) |
|
|
|
|
baseTime = template.item_bane_rank * 60 * 60 * 3 * 1000; |
|
|
|
|
|
|
|
|
|
rollingDuration = (long) (baseTime * Float.parseFloat(ConfigManager.MB_PRODUCTION_RATE.getValue())); |
|
|
|
|
return rollingDuration; |
|
|
|
@ -148,16 +146,27 @@ public enum ForgeManager implements Runnable {
@@ -148,16 +146,27 @@ public enum ForgeManager implements Runnable {
|
|
|
|
|
|
|
|
|
|
public static int calcAvailableSlots(WorkOrder workOrder) { |
|
|
|
|
|
|
|
|
|
// Slots available in a forge are based on the npc rank
|
|
|
|
|
|
|
|
|
|
int availableSlots = workOrder.vendor.getRank(); |
|
|
|
|
|
|
|
|
|
// Slots currently used up by the npc workOrders
|
|
|
|
|
|
|
|
|
|
for (WorkOrder npcWorkOrder : workOrder.vendor.workOrders) |
|
|
|
|
availableSlots = availableSlots - npcWorkOrder.slotCount; |
|
|
|
|
|
|
|
|
|
// Slot count override for single item production
|
|
|
|
|
|
|
|
|
|
if (workOrder.total_to_produce == 0 && availableSlots > 1) |
|
|
|
|
availableSlots = 1; |
|
|
|
|
|
|
|
|
|
return availableSlots; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static HashMap<mbEnums.ResourceType, Integer> calcProductionCost(WorkOrder workOrder) { |
|
|
|
|
|
|
|
|
|
// Calculate the production cost for a single run of this workOrder
|
|
|
|
|
|
|
|
|
|
HashMap<mbEnums.ResourceType, Integer> production_cost = new HashMap<>(); |
|
|
|
|
ItemTemplate template = ItemTemplate.templates.get(workOrder.templateID); |
|
|
|
|
|
|
|
|
|