Bane rank loaded from template

This commit is contained in:
2024-04-10 17:22:45 -04:00
parent f6c53e51ed
commit 7f579e5268
2 changed files with 22 additions and 6 deletions
+15 -6
View File
@@ -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 {
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);