Some bugs to report / features to request:
1. From code-diving, when Combat Analytics tries to load invalid data, the exception aborts loading the entire dataset and pressing [L] only tells you no battles have been fought. Corrupted data is not communicated to the player in gameplay, only in the starsector.log which is very verbose and most players don't read.
It should notify the player (perhaps via Global.getSector().getCampaignUI().addMessage()?) that there may be a a problem parsing corrupted combat records when the exception is thrown / when opening the interaction dialogue.
2. Damage records can be created by the EveryFrame plugin which is not accepted by SerialisationManager, which will cause an exception to be thrown at data read time. Namely, it does not check for empty string weaponNames at creation time, but does at read time.
Repro steps:
- download the Karlsson Heirloom mod from the #mod_updates channel in the Discord server.
- addship kh_commitment frigate using console commands.
- fight a battle. When it uses its ramming shipsystem and hits another ship, it create a damage record where weaponName is an empty string.
- press [L], it should say that there is no battle data, because it has just tried to load the invalid Damage records. Checking the message in the stacktrace confirms that weaponName is empty.
3. Modular ships create a ship entry for each module. These are ugly because each module only have ship IDs and not names, and some modules are hidden and not meant to be player-visible (e.g. the undershield module on Arsenal Expansion's Flourish frigate). Some mod ships have modules that have a significant proportion of the overall ship's firepower or contribute a significant amount of armour/hull, so these entries should be merged into a single entry (simplest solution is using ship.getParentStation() to check if it is a module and get the parent ShipAPI and then the id; being able to have tabulated comparative data for each module inside the parent ship's entry might be cool, but complexity...).
Easiest repro steps:
- download a mod where modules can have weapons or take damage. I used a Karlsson Heirloom mod ship, the Rationale, but other ships from other mods such as the Cathedral Hubship from Ship Weapon Pack should also repro this nicely.
- fight battle
- battle report has separate entries for each module
4. There is a display error when there are ships with a hyphen in the name (e.g. Seeker's "High-tide" ship). Due to how Combat Analytics cleans up ship's full designations, it truncates the name in the Ship record to "High".
Repro steps:
- download the Seeker modpack from #mod_updates from Starsector Discord #mod_updates
- fight battle with High-tide deployed
- the ship class in the combat analytics Ship record will be truncated to "High"
5. Please update your Bitbucket with the latest version
EDIT:
6. Killing blow stats counter should ideally discriminate between ships and fighters, and probably exclude modules.