lisongmechlab / lsml

Li Song Mech Lab

Home Page:http://lisongmechlab.github.io/lsml/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Visualise hardpoint allocation on mechs

LiSongMWO opened this issue · comments

LSML doesn't currently model the impact of port size on the DPS of missile weapons. For example firing a LRM 20 out of a hardpoint with a port limit of 1 will cause one missile at a time to leave the launcher severely reducing the DPS of the weapon system.

For this to be a useful feature, the following needs to happen:

  • UI/UX: We need a clear way of informing the user that there is a port size limit and that the DPS value includes the impact of the port size limit. This is reduce the risk of confusion over why a DPS number on a loadout might differ from the Weapons page for specific launcher/hardpoint combos. It's not enough to compute the right thing, we have to convince the user that our value, that will differ from other tools is more accurate than other tools.
  • Expand the hardpoint system: Instead of just being an enumeration of hard point types, it should now be a list of hardpoint instances that may have different properties (such as port size limit).
  • Weapon stats computations: In all places where we compute weapon statistics such as cooldown etc, they should accept an optional hardpoint instance that the weapon is mounted in. If the optional hardpoint is not given, the current behaviour should be preserved (i.e. assume unlimited hardpoint).
  • Tests: Obviously we need to add new unit tests to test this behaviour.

For this to be workable, the user needs to be able to manually re-order items to determine which hardpoint is used by which weapon, which means #618 needs to be implemented.

Also, something to consider. Not all hard points in the game can hold all weapons. I assume the PGI xml files will show this. for example there are 6 energy hard points on each of the CRD-6T arms. The game has 4 points in the lower arm and 2 in the upper arm. Having weapons in the higher points is often desirable. However, I can manipulate small lasers (loading the arm with lasers in a certain order) to get medium lasers (and maybe large lasers) into those upper arm points, but I cannot get any PPCs into the upper arms regardless of the load order.

I assume the export / import functions retain the order hardpoint loadout, so that the two editors match. But in the above case, the specific model placement of the weapon will be limited, and might not match the order placed into the editor.

Bullets one and two are now possibly OBE. (personally I think this is a bit of crap... part of the game should be overcoming model loadout limits... just like the original table top)

Aug 22 Patch note.
GAMEPLAY TWEAKS
Innersphere LRMs now fire in a single salvo regardless of the launcher tube count (e.g., HBK-4J, AS7 when firing LRM15-20)

I think the change makes sense from PGI's POV because the tube counts aren't displayed in the game and there's no obvious way in the UI to decide what weapon uses what port. It was all very opaque and most likely confusing to new players who put a LRM20 in a 1-tube launcher and watched with dissapointment as they came out one by one.

Did I miss something or can we close this as obsolete then?

It was always tough to get the ports to match what you are doing... so I agree, from PGI POV it is cleaner. However, I do not think this is completely closed. This is one area that LSML can be different from all other MWO builders (maybe only two left, but regardless) There is no tool that accurately shows which hardpoint allows which item or how they are loaded. LSML can certainly do that. Although the hardpoint may now allow a large LRM to fully fire... not all hardpoints will allow the large LRM or Large laser or PPC etc. The PGI files have the data needed, to display which hardpoint and what can go in it... the tricky part is to tie that to the model to depict , in some way where in the torso or arm that weapon is places. I am not certain that is clear in the PGI files.

A couple of examples: to get ermls in the upper part of a CRD-6T means you must load 4 small lasers in first (they fill up the lower arm first) then the top two get loaded. You cant even see this in the in game editor or visually on the mech lab model... small and medium lasers look the same. (maybe they all do). You have to load them, then get into the testing grounds to see what fires from where. Very hard to figure out in any editor including the in game one.

for missiles:
if I wanted to use the lower mounts on the MALKO torso to shorten my tall shoulders, I would need to load an RL10 or lrm5 first in the torso, to force a larger weapon into the body. at least with that one, you can see it change... not always true for missiles, but usually.

A tool to help control and select for this problem would be very nice. obviously lower priority than getting the DPS correct (which is now OBE) but the placement of weapons is an area that LSM could help a lot. Maybe this needs a new title, or maybe a new issue all together.

Ok that sounds like an entirely different problem than what was originally requested.

There have been requests in the same direction before: #387 and #398 that I've decided against. Admittedly this is slightly different but how do you even begin to visualise something like this? It sounds like a huge pain just to figure out how to show it in the UI, let alone explain how to operate it and what it is. I don't recall seeing anything about this is in the game files either, would this be manual data entry?

Also I just noticed I considered the original request in the past: #172 :)

The PGI files that map Weapons to slots are MechWarrior Online\Game\mechs<mechname>.pak\Objects\mechs<mechname><mechname>-hardpoints.xml

for example, some charger's right torsos allows for 2 ballistic, but the second slot cannot carry everything allowed in the first slot. I am pretty certain PGI loads a weapon into the hardpoint top to bottom into the first valid hardpoint for that weapon in that component. But that will ned to be verified.

in a UI, providing an indicator of weapon slot that a weapon in the LSML has been installed into. and what can load into an empty on above it (if avaliable) by using a tool tip. Obviously, populating per the PGI files will at least provide an instant feedback to the user of where the dang thing has actually been placed. which is the real problem with PGIs mech editor.


well just looked at the crusader, it has some interesting language in the AName field that may be parseable to show where weapons are placed. I suspect they all do... but in this case, the arm speaks of forearm and clavicle.

Another example for the cusader, the right arm 2 missile hardpoints... 5K will load the forearm first and the 7L loads the clavicle first. I have verified this behavior in the game. the game file and in game are consistent.

So in the UI, perhaps jsut using the names from the files to identify the hardpoint would be sufficient. with some slight editing of the AName for legibility... for example if you put a missile waepon in teh right torso, then the weapon would show that it is installed in 'torso mh1' and the next one would be 'torso mh2'. OR the above example, the first missile loaded into the CRD-7L would say 'clavicle mh2' (even though there is no clavicle mh1) then next weapon would say 'forearm mh1'.

I think jsut using what is in these files avoids any sort of hard coding, provides the user an indicator of which hardpoints are actually being populated and will all load correctly into MWO.


the tool tip for what is not populated could occur on a mouse over of the hardpoint indicator at the top of the component.