-
Notifications
You must be signed in to change notification settings - Fork 0
Map Detection
Todd Taylor edited this page Jul 3, 2024
·
4 revisions
This feature is used to determine what map was being played during a combat instance.
New map detection settings can be imported into the application from the Tools/Settings tab. This comes in handy as new maps and encounters are added to the game.
Note: The latest CombatMapDetectionSettings.json file can be found in the STOCombatAnalyzer.Settings repo.
- This feature is a bit complicated. There’s nothing in the STO combat log that points directly at a map or instance you're currently playing. Certain maps for TFOs and other special events will have unique entities, while others don’t.
- If a specific map can’t be determined, the logic will try to discern if it’s a Space or Ground based map, and will label the combat instance a generic name.
- If all else fails, it will mark the combat instance map as Undetermined.
- A combat instance can in some cases be short, and not include any non-player entities to determine any map details.
The following steps are taken for each combat instance from the Combat List dropdown:
- Gather UniqueIds (a unique list of non-player entity Ids and labels) listed in the combat instance.
- Loop through each entry in UniqueIds, and do the following:
- If the currentEntityId is found in a map exclusion list, then it gets thrown out of the rest of the detection logic, and the maps with the ID are marked as exceptions for the current combat entity being checked.
- If the currentEntityId is found in main exclusion list, then it gets thrown out of the rest of the detection logic.
- Check to see if the currentEntityId is unique to a map. If a map is found we return without doing further logic.
- Get any match counts from our map list.
- If we find any matches in the main map list, we don't need to bother with checking our generic ground and space maps for matches.
- Get any match counts from our generic ground map.
- Get any match counts from our generic space map.
- If we found any matches from our map list, we pick the one with the highest match count, and assign that map to our combat instance.
- If we didn't find a specific map from previous steps, we try to determine if the map is a generic ground or space made..
- If all of our checks fail, we return our null object, and the map will be display as "Undetermined" in the UI.