As a FFXIV:ARR player I like the enemy list on that game. So after playing WS a while, I figured it was missing something like that, and thought of trying to make something of a similar.
General description:
This addon is supposed to show a list of health bars of enemies that are aggroed or damaged by you or your party-members.
The list shows HP of the enemy and also shows green if you're not target of this enemy or red if you are.
You can configure the EnemyHPBars by typing /ehpb or clikcing the gear looking icon.
Features:
The addon shows a list, which contains enemies. On each enemy, you can see health and shield bars, class(PvP)/Rank(PvE), their buffs/debuffs, raid markers, small icon indicating if the enemy is targeting you or someone else, Interrupt Armors, cast bars, timer when the enemy was added to the list, enemys name, enemys, stunned status and an option to draw lines from enemy list to the corresponding enemy. Most of these features can be turned off except showing health bar.
General settings:
Here are some general settings to EnemyHPBars. You can change transparency of the list and buttons with the occulsion setting.
In list after kill/gone is for keeping the enemy visible on the list the amount of time that the setting has. For example if enemy gets killed and the setting has 4 seconds, the enemy will be removed from the list 4 seconds after the enemy has died. Same goes for the gone thing, if enemy for example jumps so far that you cannot use Gamelib.GetUnitById to get data from the unit, its set by default color green, and after 4 seconds it will be removed from the list. If the enemy reappers from example being in stealth it will then be readded to the list and the timer starts from 0.
Minimi time in list is for having a minimum amount of time required for the enemy to stay on the list or if the enemy gets killed. This is because on some encounters regardless what I tried to do, some enemies always just got removed. So instead of trying to fight countless of conditions, I decided to use easy way out of this, and put a timer. If you do any damage to the enemy during this period, so that the enemys health drops under 100%, it shouldnt be removed from the list regardless if the timer has ran out and the enemy isn't in combat.
Hide enemies that are further than n units away is an option to hide enemies from the list that are far. The enemies will not be removed, unless they actually die or UnitDestroyed happens. This means even if you cannot see the enemy on the list, it actually is there, like timer keeps going but the windows just aren't updated.
You can also change how the list is being shown, like if you're in a party or soloing or if youre in a fight or not. Also in case you're in a PvP-instance.
Lines to Target:
This is for showing lines from the enemylist to the target. By default it shows thin lime colored line to the target, if the show lines is checked (by default its not).
You can change the color of the line and thickness. Also from how many targets the lines are drawn. This will be count from topmost target.
You can also set an option to only show lines when certain key is being held down. You can also setup the key which you want to have the activation on. Like CTRL for example instead of the default 'Y'
Sorting Items in list:
This will determine the order in which the enemies appear in the list. By default the topmost enemies will be the ones that have Target/Raid markers. Then it will be arranged by players classes (PvP) and finally PvE enemies.
If you choose not to use the order, it will arrange the enemies on the list according to the time they were added, and oldest enemies will be the topmost.
If for example all the enemies are PvE enemies and none of em is marked, the order will be first by rank of the enemy. The higher the rank, the upper the enemy will be. If 2 enemies have same rank, then it will arrange the enemy by time added.
Order of items inside health bar:
This one determines on what order the items inside the health bar will be shown.
Color options and fonts options:
This should be quite self explatorinary. The font colors depends on what state/type the enemy is.
One thing to note, the bar height for health bar actually also determines how big the icons will be. The height of cast bar will determine how high the cast bar will be.
Health Bar:
On Health Bar, you can see enemys name, health and health in percentages. You can configure to not show any of these. Also it is possible to configure the Name field so, that it shows cast names on it, when casts happen and possibly you can put cast bar on top of health bar when casts happen or underneath it.
You can turn off the name being shown on health bar (Options -> Health bars features -> Show Names of Enemies)(on by default),
health values (Options -> Health bars features -> Show HP Values )(on by default) and
health% ( Options -> Health bars features -> Show HP percentages )(on by default)
Shield Bar: (The gray bar by default, with blueish borders)
Can be turned off at: Options -> Health bars features -> Show Shield (on by default)
Shield Bars have very little configuration, you can see shield% and you can set the shields so that they will be hidden when the enemy has no shield or reserve the space for shields always, with this the health bars will be same length. ( Options -> Health bars features -> Show shield always ) (off by default)
Interrupt Armors: (Badge like icon with numbers in them or "??")
Can be turned off at: Options -> Health bars features -> Show Interrupt Armors (on by default)
Interrupt Armors have this badge looking icon. The interrupt armors can be turned off or they can be turned into state where they will be hidden when enemy has 0/0 interrupt armors. (Can be turned off at: Options -> Health bars features -> Show Interrupt Armors Always) (on by default)
If it says "??" it means that the interrupt armor value is infinity.
Class Icon(PvP) / Rank(PvE): (Shows class icon in PvP player or PvE Rank in yellow number)
Can be turned off at: Options -> Health bars features -> Show class icon on players / rank on monsters (on by default)
This one is a static icon that shows the rank of the enemy in PvE, or class icon if the enemy is a player. The order of the enemies will be same regardless if you have this field hidden or not.
Aggro Icon: (The ball that can be red/white/green/magneta or marked icon upside down)
Can be turned off at: Options -> Health bars features -> Show Aggro Circle (on by default)
This icon indicates the target of the enemy. In case it is targeting you, the ball will be by default shown red. If the enemy is targeting someone else the default color of the ball will be green. If it is targeting your pet, the default color of the ball will be magenta and if the enemy is not targeting anyone, the default color of the ball will be white.
If you have checked the show icons upside down if targeting marked target option (Options -> Health bars features -> Use upside down target markers on Aggro Circle) (on by default), if the enemy targets someone who has raid marker on, it will show the raid marker upside down on the aggri circle field.
Target markers(Raid markers): (By default the leftmost spot)
Can be turned off at: Options -> Health bars features -> Show Target Markers (on by default)
Shows a target/raid marker on the enemylist, if the enemy is marked. By default targeted enemies will be topmost of the enemy list.
Timers: (By default the rightmost spot)
Can be turned off at: Options -> Health bars features -> Show Timer (on by default)
This is a timer from when the enemy was added to the enemy list. If for example enemy gets deleted from the list and readded the timer restarts.
You can switch between showing the time as Minutes:Seconds(1:20) format or just seconds(80). Options -> Health bars features -> Show Timer as Minutes:Seconds instead of just seconds (on by default)
Cast Bars: (by default the orange bar on bottom of health bar)
Can be turned off at: Options -> Health bars features -> Show Cast Bar (on by default)
Shows skill cast of the enemy. The bar can be shown at bottom of health bar or under the health bar (Options -> Health bars features -> Put Cast bar under HP Bar) (off by default, shows cast bar inside health bar)
The skill name / cast duration can be shown on either at enemys name field or inside cast bar (Options -> Health bars features -> Use name field on HP Bar for showing cast) (on by default, Uses the enemys name field for showing skill cast name/duration)
The enemys stun duration can be shown on cast bar (default purple color)(Options -> Health bars features ->Show Stunned state on cast bar) (on by default)
Buffs/Debuffs: (by default buffs will be on left side of the list and debuffs right)
(Options -> Health bars features -> Show enemy buffs) (on by defaul) Shows buffs the enemy has.
(Options -> Health bars features -> Show enemy debuffs) (on by defaul) Shows debuffs the enemy has.
Apparently the Unit:GetBuffs() doesn't show all the debuffs/buffs the enemy has, so the list is not complete (this is what I read from the forums). The order of the buffs/debuffs are arranged by time remaining.
You can swap the buffs to be show on right side, and debuffs left side of the list by unchecking (Options -> Health bars features -> Show buffs on left, debuffs on right side) (on by defaul)
(Options -> Health bars features -> Show only debuffs made by you) (on by defaul) This option tries to track debuffs made by you. The problem is that this option only counts those debuffs that cause damage, so debuffs like "Gate" aren't tracked. Also if the debuff causes damage a lot later on than when it was used, it will take a bit of time before this thing gets added on the list. Also something worth noting is that the tracking kinda tries to "guess" which of the debuffs applied is the one you applied, so there is no guarantee that it works 100%.
Bugs and known to be problems:
The lines will be invisible if the end point and start point are either a) on same window x-coordinate or on same window y-coordinate.
The debuffs tracking doesn't track all the debuffs made by you, and apparently in general the api carbine provides doesn't track all of the debuffs made.
If more classes will be added, the addon doesn't automatically detect them, and the ordering thing might actually not like it if they are manually added either. Meaning there will be need to either a) overwrite the configuration file from users in the terms of ordering items, or adding the new item at last spot.
Same thing in case more windows will be added, you will always need to either complete rewrite the saved order, or add the item as last spot in the list.