With the changes to the way Block and Sprint functionality work there's no longer a buff displayed for when a player or target is blocking, or a combat event when a player is sprinting or mount sprinting.
I'd like to propose a few functions AND/OR events to determine whether a unitTag is blocking and if possible it might be nice to have this expanded to mount & sprint as well. This would match the API functionality available for stealth state changes that is available.
The following events would be needed:
Code:
EVENT_BLOCK_STATE_CHANGED(number eventCode, string UnitTag, boolean IsBlocking)
EVENT_SPRINT_STATE_CHANGED(number eventCode, string UnitTag, boolean IsSprinting)
EVENT_MOUNT_STATE_CHANGED(number eventCode, string UnitTag, boolean IsMounted)
The following functions would be needed:
Code:
IsUnitBlocking(string unitTag)
Returns: boolean IsBlocking
IsUnitSprinting(string unitTag)
Returns: boolean IsSprinting
IsUnitMounted(string unitTag)
Returns: boolean IsMounted
As a side note the functions/events we currently have available are quite limited, as we can only use a function to check if the player is blocking or mounted, or get event updates for when the player mounts or dismounts:
Code:
IsBlockActive()
Returns: boolean active
IsMounted()
Returns: boolean mounted
EVENT_MOUNTED_STATE_CHANGED (number eventCode, boolean mounted)
EDIT: I just realized the current IsBlockActive() function seems to return true when the player is holding the block input, not only if they are actively blocking. It returned true while I was holding block while I was stunned. Man... I really hate that the buff effects for these abilities were removed.