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
131 stars 168 forks source link

RFE: TOE Persistence or Export #4063

Open johnboyjjb opened 5 months ago

johnboyjjb commented 5 months ago

When working with my units, I find that certain people get promoted over time and certain people get promoted because of their role. Screenshot 2024-05-08 070735 And then we go and work a contract or fight a battle. And at the end of a battle or end of contract I get holes punched in my TOE. This means that I have to export the personnel to csv, and then reconfigure that data to be of use to me. Screenshot 2024-05-08 071316 There are a few ideas for how to improve this. One idea was to allow an export of the TOE, perhaps before missions and at the day flip. The other idea was to have a more persistent structured TOE with configurable nodes. The advantage of configurable nodes would be that one could identify what role the unit should be, what rank the pilot should be, and the potential groundwork for an auto promotion in rank or role in the future.

IllianiCBT commented 5 months ago

Hey, I’m having a little trouble understanding your request and the use-case. Would you be able to go into some further detail? :)

johnboyjjb commented 5 months ago

It made complete sense when I wrote it but rereading it wasn't exactly clear.

In my picture above, if I go into battle and Sergeant Major Michelle in the Korvin - Bria gets totally destroyed, that spot goes away. Not empty, not blank, but away. With no details. Screenshot 2024-05-08 124750 If the TOE was exportable in some way, I could go back to the export file and see that my missing unit was a Korvin piloted by a Sergeant Major and I would normally replace it with a First Sergeant getting a promotion or another Sergeant Major. If I had another Korvin I would plug it in, but if not, I would look for something that was 5/8 movement, or something in the Brawler class, or some other characteristic that would justify filling that spot. Or ...

Screenshot 2024-05-08 125214

Something like this would show me what was there but isn't available anymore. Again, I could investigate and determine what would be appropriate. This is already done if the crew is killed but the unit is fine once it is hosed out: Screenshot 2024-05-08 125555

One envisions a solution that could look like this as well:

Screenshot 2024-05-08 125214
IllianiCBT commented 5 months ago

I believe that would require a lot of reworking of the TOE code to store historical TOE states.

An easier solution might be to have a Campaign Option that reports to the Daily Report pane, whenever a Unit is removed from the TOE.

Something like Sgt. John Doe has been removed from Alpha Company-Alpha Lance due to pilot death or Sgt. John Doe’s Shadowhawk SHD-12 has been removed from Alpha Company-Alpha Lance due to unit destruction.

johnboyjjb commented 5 months ago

Ooh. That is a good idea. I think I prefer that over any of my suggestions.

I do like the idea of MekHQ managing promotions with some criteria. Maybe when somebody gets a wild hair and decides to recode the TOE for some other purpose.

IllianiCBT commented 5 months ago

So I, personally, would prefer promotions be left in the hands of the player for the most part. There are plenty of players who never even touch promotions, as a system, and while a Campaign Option might be viable; for the vast majority of users, I think the current system of manual promotions is sufficient.

As an aside, any automated promotion system would run into the issue of having to find a way to handle multiple Rank Systems, including Custom Rank Systems. We’d also have to write a way for mhq to ‘know’ what Rank is suitable for what TOE role; and then further adjust by Profession (MechWarrior, Aero, infantry, etc).

johnboyjjb commented 5 months ago

The idea of having blank configurable nodes would allow one to specify the that the fourth node on Lance 1 should be an E4. Then, no matter what rank table or column, one would look at the appropriate E4.

On the other hand - I think you are correct that their are insufficient users who care.