|
|
|
@ -73,7 +73,7 @@ public enum ForgeManager implements Runnable {
@@ -73,7 +73,7 @@ public enum ForgeManager implements Runnable {
|
|
|
|
|
if (workOrder.total_produced >= workOrder.total_to_produce) { |
|
|
|
|
|
|
|
|
|
// Set items as completed in the window.
|
|
|
|
|
// CONFIRM_PRODUCE used to refresh item to the interface.
|
|
|
|
|
// CONFIRM_PRODUCE to refresh item in the interface.
|
|
|
|
|
|
|
|
|
|
for (Item workOrderItem : workOrder.cooking) { |
|
|
|
|
workOrderItem.flags.add(mbEnums.ItemFlags.Identified); |
|
|
|
@ -81,20 +81,19 @@ public enum ForgeManager implements Runnable {
@@ -81,20 +81,19 @@ public enum ForgeManager implements Runnable {
|
|
|
|
|
DispatchMessage.dispatchMsgToInterestArea(workOrder.vendor, outMsg, mbEnums.DispatchChannel.SECONDARY, 700, false, false); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
workOrder.runCompleted.set(true); |
|
|
|
|
|
|
|
|
|
// Update workOrder on disk
|
|
|
|
|
// Set to completed and update workOrder on disk
|
|
|
|
|
|
|
|
|
|
workOrder.runCompleted.set(true); |
|
|
|
|
DbManager.WarehouseQueries.WRITE_WORKORDER(workOrder); |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// PERSIST current cooking batch and move
|
|
|
|
|
// our new items to vendor inventory
|
|
|
|
|
// PERSIST current cooking batch of virtual
|
|
|
|
|
// item then add to the vendor inventory
|
|
|
|
|
|
|
|
|
|
completeWorkOrderBatch(workOrder); |
|
|
|
|
|
|
|
|
|
// Create a new set of in-memory only virtual items
|
|
|
|
|
// Create new set of in-memory only virtual items
|
|
|
|
|
|
|
|
|
|
forgeWorkOrderBatch(workOrder); |
|
|
|
|
|
|
|
|
@ -143,9 +142,9 @@ public enum ForgeManager implements Runnable {
@@ -143,9 +142,9 @@ public enum ForgeManager implements Runnable {
|
|
|
|
|
if (validation_result != 0) |
|
|
|
|
return validation_result; |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
// Configure this production run.
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
workOrder.workOrderID = workOrderCounter.incrementAndGet(); |
|
|
|
|
workOrder.rollingDuration = ForgeManager.calcRollingDuration(workOrder); |
|
|
|
|
workOrder.completionTime = System.currentTimeMillis() + workOrder.rollingDuration; |
|
|
|
@ -161,14 +160,14 @@ public enum ForgeManager implements Runnable {
@@ -161,14 +160,14 @@ public enum ForgeManager implements Runnable {
|
|
|
|
|
if (workOrder.multiple_slot_request == false && workOrder.total_to_produce == 0) |
|
|
|
|
workOrder.total_to_produce = 1; |
|
|
|
|
|
|
|
|
|
// Set total cost for production run
|
|
|
|
|
// Calculate total cost for this production run
|
|
|
|
|
|
|
|
|
|
workOrder.total_to_produce *= workOrder.slots_used.get(); |
|
|
|
|
|
|
|
|
|
workOrder.production_cost = calcProductionCost(workOrder); |
|
|
|
|
workOrder.production_cost.forEach((key, value) -> workOrder.production_cost_total.put(key, value * workOrder.total_to_produce)); |
|
|
|
|
|
|
|
|
|
// Withdraw gold and resource costs. Availability has previously been validated.
|
|
|
|
|
// Withdraw gold and resources. Availability has previously been validated.
|
|
|
|
|
|
|
|
|
|
if (!WorkOrder.withdrawWorkOrderCost(workOrder)) |
|
|
|
|
return 58; //58: The formula is beyond the means of this facility
|
|
|
|
@ -208,7 +207,7 @@ public enum ForgeManager implements Runnable {
@@ -208,7 +207,7 @@ public enum ForgeManager implements Runnable {
|
|
|
|
|
|
|
|
|
|
ItemTemplate template = ItemTemplate.templates.get(workOrder.templateID); |
|
|
|
|
|
|
|
|
|
// Bane circles
|
|
|
|
|
// Bane circle special case
|
|
|
|
|
|
|
|
|
|
if (template.item_bane_rank > 0) |
|
|
|
|
rollingDuration = (long) template.item_bane_rank * 60 * 60 * 3 * 1000 * Float.parseFloat(ConfigManager.MB_PRODUCTION_RATE.getValue()); |
|
|
|
@ -379,7 +378,6 @@ public enum ForgeManager implements Runnable {
@@ -379,7 +378,6 @@ public enum ForgeManager implements Runnable {
|
|
|
|
|
// Write updated workOrder to disk
|
|
|
|
|
|
|
|
|
|
DbManager.WarehouseQueries.WRITE_WORKORDER(workOrder); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static int calcRandomMod(NPC vendor, mbEnums.ItemModType itemModType, int modTable) { |
|
|
|
|