MischhCombatTexts

MischhCombatTexts

3.5k Downloads

MischhCombatTexts

- a replacement for FloatText -

Inspired by WoW-Addons, such as MSBT or Parrot, this Addon provides a facility to Combine alot of different Texts from the screen to a small amount of color-coded texts, which move a predefined route. In its default Configuration it's combining the damage/healing done to units on the screen (including yourself) into two ascending paths around your character.

Open the Settings by typing '/mct' or by clicking the 'MischhCombatTexts'-Button inside the Esc-Menu.

This is the first Wildstar-Addon, I wrote completely from scratch and as such was not intended for Curse. But as there is nothing I found to be close on doing the same, I decided to release it. Please keep in mind, that this Addon is not written to be userfriendly at all (this is very noticable, once one sees the 'Functions'-Tab inside the Settings)

A Introduction to the Panels-Tab:

  • ANY change done will be recognized as soon as possible, but some changes might not apply to currently displayed texts (but all will apply to newly appearing ones)
  • You can Add/Remove Panels at the Top-Left and select the Panel to-be-edited on the right.
  • A panels name is only descriptive. It does not need to be unique,  but should be distinguishable for later usage in the 'Text Options'
  • The alignment lets you choose to make your texts orient themselves along the left or right edge of this panel. Icons will always be located on this side aswell.
  • The Mode lets you choose between
    • Rise - Over the duration of a text, it will gradually move from the Source, to its Destination
    • Lift - Texts try to stick to their Source, and will be lifted up, once a new text appears
    • Stack - Texts try to stick to their Source, new texts stack upon older and move towards their source, with older texts disappearing.
  • The Direction selects the source of a text and where these move towards.
  • The Text Scale lets you choose the size of a text.
  • The Duration is the total time a text is displayed
  • The Changable time is the part of the total duration, in which a text may change
  • Instead of texts moving up/down a edge of your panel, you can offset the text from this path:
    • Angled - The Text will start at its 'default' position and the further it goes down its path, it'll move away from the aligned edge.
    • Triangular - The Text will start at its 'default' position and moves away from its edge until it turns at the very center, back to the edge.
    • Circular - The Text starts at its 'default' position, to move in a half-circle across the panel.
    • Angled (inverse) - The text starts at the maximal offset to move in a straight line back towards the edge.
    • Triangular (inverse) - The text starts at the maximal offset, moves towards the edge, turns around, and gradually gains maximal offset again.
    • Circular (inverse) - The text starts at the maximal offset, makes a half-circle directed towards the edge and ends up at maximal offset again.
  • The Offset is measured in panel-widths: At 0.5 Offset, a text will maximally be offset by half of the panel.

A Introduction to the Text Options Tab:

In this Tab 'Events', are formatted, colored and output as texts to a panel.

  • Events can be added with a name (not changeable afterwards) or removed. The name needs to be unique!
  • An Event is concidered 'Input', if you are the Target of the Event. ('Output', if you are the Source)
  • The Format is used as template for the text-output. '%' is the escape-character here. There are some usual shortcuts, but none of them is guaranteed to be available.
    • '%n' - The specific Name of this Event (The spellname)
    • '%a' - The Amount (Total Damage done with this spell)
    • '%h' - Hit-Counter (Number of non-crits with this spell)
    • '%c' - Crit-Counter (Number of crits with this spell)
  • The Color is used as text-color.
  • The Panel to display selects, where to output this events texts to

A Introduction to the Functions-Tab:

  • The Name is only Descriptive, does not need to be unique, and can be freely chosen.
  • The WS-Event (Wilstar Event) should be the Name of a Event, which one could register for by 'Apollo.RegisterEventHandler()'
  • The Function, to be written in LUA. This Code will be compiled, once 'Save' was pressed.  Access to the function will be gained by 
    f = loadstring("return ("..<FUNCTION>..")")()

     usually a function would have such a structure and has access to these functions through 'self', additional to the global namespace ofc. 

    function(self, ...)
      self.func --reference to the function itself. Replace, to change the function called by this event
    
      --returns true, false or nil for 'Is Target', 'Is Source' or none - returns 'Is Source', if both 
      self:IsIncoming(targetUnit, sourceUnit)
    
      self:AddDefaultText(event, isInc, key, icon, amount, isCrit)
      self:AddDefaultText("Damage", true, "Quantumcascade", strIconPath, 1234, false) 
    
      self:AddCustomText(event, isInc, key, icon, [shortcut, val], [s ,v], ...)
      self:AddCustomText("Damage", true, "Quantumcascade", strIconPath, "%a", 1234, "%h", 1, "%c", 0)
    
      self:AddCustomText(event, isInc, key, icon, func, params...)
      local func = function (text a, h, c)
        text["%a"] = (text["%a"] or 0) + a
        text["%h"] = (text["%h"] or 0) + h
        text["%c"] = (text["%c"] or 0) + c
      end
      self:AddCustomText("Damage", true, "Quantumcascade", strIconPath, func, 1234, 1, 0)
    end

Credits:

FloatText - Carbine. I only replace half of the Addon FloatText, the other half, which handles acievements and other displays, were not edited.

JSON -  MIT Lua module by David Kolf