-
Notifications
You must be signed in to change notification settings - Fork 0
Processing and Data Object Structure
Todd Taylor edited this page Sep 27, 2024
·
8 revisions
The following screen shot is an example of what the application looks like after parsing a group of log files.
When you click on the Parse Log(s) button in the UI, the following series of events occurs.
- The application uses the configured combat log folder, and file search pattern, to get a list of combat log files.
- Each line in every file is parsed, and converted into an object called a CombatEvent.
- All of the CombatEvents from all files are sorted by timestamp, and the list of CombatEvents are used to generate the Combat object hierarchy.
Steps taken to generate a Combat Hierarchy:
- The list of CombatEvents is used to determine periods of time when the player is in combat. Each of these instances becomes a Combat object.
- This list is what populates the "Combat List" in the UI. Circled in green.
- Each Combat object uses the sub-list of CombatEvents it's assigned for the time period, and divides them into a collection of Players and Non-Players.
- The Player and Non-Player lists inside of the Combat object, are lists of CombatEntity objects. A CombatEntity represents a Player and Non-Player character.
- When a Combat is selected (from the section circled in green), the section of the UI circled in red is populated with it's information, which includes it's list of Players and Non-Players.
- Each CombatEntity has a list of CombatEvents related to the Player or Non-Player.
- When a Player or Non-Player is selected (from the section circled in red), it's list of CombatEvent objects are what populate the data grid circled in blue.
- Each CombatEntity has a list of CombatEvents related to the Player or Non-Player.
- When a Player or Non-Player is selected (from the section circled in red), it's list of CombatEvent broken down by event type, are listed in the TreeView circled in orange.
- Each CombatEntity has a list of CombatEvents related to the Player or Non-Player.
- When a Player or Non-Player is selected (from the section circled in red), it's list of CombatEvent Magnitude and MagnitudeBase values are displayed in the Plot circled in yellow.
A high level class diagram of the 3 objects which makeup the Combat object hierarchy. Note: Only relevant properties are shown.
Combat
{
PlayerEntities: List<CombatEntity>
NonPlayerEntities: List<CombatEntity>
}
CombatEntity
{
CombatEventList: List<CombatEvent>
}
// Each CombatEvent represents a line from the STO combat logs, and each property
// shown represents a parsed piece of data from that line.
CombatEvent
{
Timestamp
OwnerDisplay
OwnerId
SourceLabel
SourceId
TargetLabel
TargetId
EventLabel
EventId
Type
Flags
Magnitude
MagnitudeBase
}