MegaMek / mekhq

MekHQ is a java helper program for the MegaMek game that allows users to load a list of entities from an XML file, perform repairs and customizations, and then save the new entities to another XML file that can be loaded into MegaMek.
http://megamek.org
130 stars 168 forks source link

[RFE] Deduct maintenance time only before a Maintenance Check #4828

Open Saklad5 opened 5 days ago

Saklad5 commented 5 days ago

Prerequisites and Pre-Issue Checklist

RFE Details *

This is a request to implement Errata

Brief Description *

A recent forum ruling has confirmed that MekHQ's current approach to maintenance time, where it is deducted every day, is incorrect. Instead, that time should be deducted immediately preceding a Maintenance Check.


This would best be implemented as a full rewrite of the current system, which is unnecessarily complicated. Here is a summary of how the revised system should work:

[^1]: Assigning two or three Technical Teams to maintain the same unit applies a -1 or -2 target modifier, respectively. This is currently unimplemented, but as these changes require an overhaul of the maintenance code anyway, it is a good time to rectify that.

MekHQ Suite Version *

v0.50.0

Attach Files

No response

Final Checklist

Saklad5 commented 5 days ago

Alternatively, Maintenance Checks could preempt other kinds of task. Under that approach, a long-running task would be put on hold in favor of a required Maintenance Check, and resume once that check is completed. In the DropShip example above, that could be conveyed by stating that a Technical Team has 240 minutes left plus 240 minutes for scheduled maintenance.

Note that the time shouldn't be removed at that stage, as the player could adjust how much time to spend on maintenance, thereby freeing up more time on that day. For units that aren't self-maintained, a different Technical Team could also be assigned that task instead to let that technician work on something else.

This approach would also allow tasks that take more than a working week, such as DropShip engine replacements, to be scheduled without forcing maintenance to be left undone.

Once a Maintenance Check starts, though, it should be seen through to the end. Maintenance Checks shouldn't be preemptable by other Maintenance Checks either.