MegaMek / megamek

MegaMek is a networked Java clone of BattleTech, a turn-based sci-fi boardgame for 2+ players. Fight using giant robots, tanks, and/or infantry on a hex-based map.
http://www.megamek.org
GNU General Public License v2.0
286 stars 276 forks source link

[RFE] Add tools and GUI options to outfit Princess forces with alternate munitions #5284

Open Sleet01 opened 3 months ago

Sleet01 commented 3 months ago

Proposed set of enhancements for MegaMek / MekHQ:

Step 1: create a tool that ingests a force list (including faction or with a separate faction value), an era, maybe a couple other values, and produces a list of available munitions to choose from; Step 2: create a tool that ingests the output of step 1, and the same info plus: the set of game options, a set of bot options / MekHQ variables, map info, and planetary conditions, and chooses from that subset of available munitions for each unit in the force using dummy weighting classes for each ammo type (basically making a random picker); Step 3: plumb these tools into the MegaMek UI so that players can choose to outfit Princess's forces; Step 4: add relevant weighting rules for all the munitions to add actual intelligent ammo picking; Step 5: plumb these tools into MekHQ so that AtB / StratCon forces can be outfitted based on scenarios prior to launch; Step 6: add, or adapt existing, espionage gameplay so that Princess's forces can be configured as anywhere from a hard counter to the player's forces, down to absolutely incorrectly prepared, depending on "intelligence" information. I think 1-3 can be done for 0.49.19; 4-6 are more .20 ~ .21 timeframe.

Discussion is ongoing at https://discord.com/channels/458705327911731231/1222035892965736539

This would complete a portion of #5144 as well.

Thom293 commented 3 months ago

excited noises

Sleet01 commented 2 months ago

Update 2024/04/20

The initial work is going in to .20, and will be available in today's nightly build and going forward. This includes:

  1. Per-team munition selection based on selected faction, opponent forces, game settings, environmental factors, and own-team composition.
  2. Saving current loadout, applying an arbitrary loadout, generating loadouts for bots or players, and randomized loadouts.
  3. Nukes are prohibited by game options (but if players enable nukes, Princess gets them too!)

Next phase work:

  1. Add unit tests to verify proper operation for some edge cases (I don't think ATMs are working quite right, for instance)
  2. Move the bomb assignment code from StratCon / AtB into the Munitions Loadout Generator so both MM and MHQ use the same code for selecting bombs
  3. Finish adding automatic Faction assignment to all the Create Random Army tabs (currently it's only set up for Force Generator)
  4. Add Team faction packet handling to the server (so all clients can see each others' teams' factions, currently it's local to the player's client)
  5. Clean up UI 5.1. include "No Nukes!" checkbox for the loadout generator itself, separate from game settings 5.2. Add tooltips for all controls 5.3. Possibly move UI to a context menu option or the Team Overview tab 5.4. Add notification that nothing has been changed
  6. Add a game option or Bot option to let munition selection happen automatically
  7. Possibly add bin-fullness setting for Pirates, etc. Something like Full, 3/4, 1/2, 1/4 - per #4091

MekHQ updates will be tracked in a separate RFE once this work is complete.