This fix ensures that name truncation always happens on codepoint
boundaries and that a name has exactly 5 visible codepoints. This should
cover all possible cases unless names can have grapheme clusters, afaik
this is not the case.
StatusTrigger will trigger if a status activates (or reaches a certain
activation # of auras). This is an abstraction provided by AuraList
which keeps track of which auras belong to which statuses.
Added type annotations to all touched files
The base Trigger class is now responsible for inverting the trigger
state and also for signaling trigger activation to the target/indicator.
In addition the following non-function changes also occured:
- The triggers moved into their own directory
- The trigger code has been annotated to help lua-language-server
deduce type information
- AuraTrigger was moved into its own file
All these changes should make future development of other triggers easier