Giter Site home page Giter Site logo

twintop / twintopinsanitybar Goto Github PK

View Code? Open in Web Editor NEW
11.0 3.0 7.0 7.72 MB

Twintop's Resource Bar (formerly Twintop's Insanity Bar), a multi-class resource addon for World of Warcraft

License: MIT License

Lua 100.00%
world-of-warcraft worldofwarcraft lua wow-addon

twintopinsanitybar's Introduction

GitHub release MIT License

Issues Issues Issues Issues Issues Issues Issues Issues Issues Issues Issues Issues Issues Issues Issues Issues

Twintop's Resource Bar

A multi-class resource bar, based on my (Twintop's) previous Shadow Priest Insanity Bar WeakAura set from Legion.

Currently supported specs:

  • Demon Hunter - Havoc, Vengeance
  • Druid - Balance, Feral, Restoration
  • Evoker - Devastation, Preservation, Augmentation
  • Hunter - Beast Mastery, Marksmanship, Survival
  • Monk - Mistweaver, Windwalker
  • Priest - Discipline, Holy, Shadow
  • Paladin - Holy
  • Rogue - Assassination, Outlaw, Subtlety
  • Shaman - Elemental, Enhancement (Experimental/Minimal), Restoration
  • Warrior - Arms, Fury

This is a fully customizable resource bar for multiple classes and specs to use to track their primary resource while in combat. Features include:

  • Full color, font, and texture customization of every part of the bar to make it suit your UI or make certain situations stand out.
  • Audio and visual cues for when important spells (e.g. Devouring Plague, Earth Shock) can be cast.
  • Time To Die of enemies you've targeted
  • Spell icons for your current casting spell and many others that are related to your primary resource or for tracking.

Spec specific features included for Shadow Priests:

  • Calculates how long you have left until Voidform will end in Hungering Void, given the current Haste and Crit levels
  • Tracks Shadowy Apparition spawns (with Auspicious Spirits talented) and incoming Insanity as a result.
  • Tracks Shadowfiend/Mindbender swings and expected incoming Insanity from future swings.

Bar text can be configured to show the following data in whatever format you'd like:

  • Current resource, mas resource, resource from Hardcasting a spell, resources incoming from Passive Sources (e.g. Auspicious Spirits, Shadowfiend/Mindbender, Death and Madness, and Eternal Call to the Void procs)
  • Current Haste%, GCD, Crit%, Mastery%
  • Number of Damage over Time spells out on targets
  • Time To Die of enemies you've targeted
  • Spell icons for your current casting spell and many others that are related to Insanity or tracking.

Found an issue? Report it on GitHub (https://github.com/Twintop/TwintopInsanityBar/issues/) or in Discord (https://discord.gg/eThqxM78xm)

Looking to customize the bar's text? Be sure to check out the wiki!ย https://github.com/Twintop/TwintopInsanityBar/wiki/Bar-Text-Customization

twintopinsanitybar's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

twintopinsanitybar's Issues

Add Localization

Localization Google Sheet
https://docs.google.com/spreadsheets/d/1ICs-ZR3KeySXXD268xNUqzkc9Eqi0bXhjISUL0AoPRQ/edit?usp=sharing

Status by file (that has localizable strings within it):

Shared

  • Init.lua
  • Classes\Target.lua
  • Functions\BarText.lua
  • Functions\LibSharedMedia.lua
  • Functions\News.lua
  • Functions\Threshold.lua
  • Options\OptionsUi.lua
  • Options\Options.lua

Class Implementations

  • ClassModules\DemonHunter.lua
  • ClassModules\Druid.lua
  • ClassModules\Evoker.lua
  • ClassModules\Hunter.lua
  • ClassModules\Monk.lua
  • ClassModules\Priest.lua
  • ClassModules\Rogue.lua
  • ClassModules\Shaman.lua
  • ClassModules\Warrior.lua

Class Options Menus

  • ClassModules\Options\DemonHunterOptions.lua
  • ClassModules\Options\DruidOptions.lua
  • ClassModules\Options\EvokerOptions.lua
  • ClassModules\Options\HunterOptions.lua
  • ClassModules\Options\MonkOptions.lua
  • ClassModules\Options\PriestOptions.lua
  • ClassModules\Options\RogueOptions.lua
  • ClassModules\Options\ShamanOptions.lua
  • ClassModules\Options\WarriorOptions.lua

Original content:
xy985426 on CurseForge requests:

Please add a localization file thank you

Ability to set Threshhold Line Thickness

I use the insanity bar at a smaller scale than most. I noticed that since the threshhold line doesn't scale based on the width and height of the bar, it looks too thick and apparent. Would be a nice feature to be able to set the width of the threshold line.

capture
WeakAura version above / Add-on version below

Update Bar Resource Values

Various resource values are being changed in 9.0.2 / on beta.

Shadow

  • Auspicious Spirits 1 -> 2
  • Mind Blast 7 -> 8
  • Searing Nightmare 35 -> 30
  • Void Torrent 40/4 @ 10 per tick -> 60/3? @ 20 per tick?

Detect Invalid/Removed Textures, Fonts, Audio, etc.

Because TIB uses LibSharedMedia, a user can choose a font/texture/audio file to use in the bar that is provided by another addon. If this other addon is removed, the resource is also removed with it. When this happens, the bar will stop functioning in some way -- text not displayed, blank textures, no audio, etc.

Need to add sanity checks around these resources so that if a resource is not available it gracefully changes to a different resource. Also possibly prompt the user that something happened and why.

Add TimeToDie to Bar

In Issue #10, @davidhyunlee suggests:
Can you also include an option to add TimeToKill text to the bar? I've always modified the right text to show a time to kill timer instead.

Insanity bar clickthrough

Describe the solution you'd like
Make an option to make the insanity bar click-through.

problem?
My insanity bar has a central place in my UI. Turning in game I usually do by clicking and dragging the mouse. Sometimes I accidentally click on the insanity bar and then nothing happings.

Bar isn't actually centered

[2:37 PM] Soulmate: i found the reason
[2:37 PM] Soulmate: the white bar is in center
[2:37 PM] Soulmate: but you have different numbers of pixels
[2:38 PM] Soulmate: on the left side of bar
[2:38 PM] Soulmate: and on the right one
[2:39 PM] Soulmate: even when width is even number

https://imgur.com/a/8PcbsLJ

Reported by Soulmate via Discord.

Pin to Personal Resource Display

Provide a configuration option to allow the bar to be pinned to the Personal Resource display instead of at an X, Y position on the screen.

Voidform Summary Configuration Options

domzae on CurseForge requests:
Hey Twintop, I always modified the weakaura so that at the end of each (non-s2m) voidform it would only print out "Voidform Stacks: XX" and none of the other info, would you be able to add a "Show simple voidform summary" option which does this?

Love your work! <3


Add some configuration options (at the very least a "simple" output) for the end of Voidform summary.

Add Mind Sear detection

Let the bar count the number of targets struck by the previous tick of Mind Sear to give a future estimate on how many targets will be hit by future ticks. Add some caching threshold to this so the initial tick can be more accurate if Mind Sear is not channeled back to back.

Customize Text on Bar

Rather than just have the options hard coded for what to display on the left/center/right of the bar, instead allow users to create their own custom formatting using variables. For example, on the left, if we have the following variables available:

$haste = Haste %
$vf_stacks = Voidform Stacks
$vf_more_stacks = Additional incoming Voidform stacks

Then if a user entered the following:

$haste% - $vf_stacks (+$vf_more_stacks) VF

The output on the bar (for 51.23% haste, 20 stacks, and 8 incoming) would be:

51.23% - 20 (+8) VF

Pseudocode is pseudo; still need to figure out colors, in/out of Voidform behavior, etc.

Add "Reset Bar Text (Narrow Advanced)" Option

Give another configuration option out of the box that is narrower than the regular Advanced bar text.

Left side:
#swp $swpCount $haste% ($gcd)|n#vt $vtCount {$ttd}[TTD: $ttd]
Right side:
{$casting}[#casting$casting+]{$passive}[$passive+]$insanity

Hide Bar When It Isn't Needed

The bar is currently displayed at times when it make no sense from a UX perspective such as during pet battles and in vehicles. Ensure that the bar is not displayed under these and similar conditions.

Refresh Settings Options Screens

The settings screens are a mess, especially now that they're all-in-one style per spec.

Spend some time making them actually look good/behave better. Tabs, scrollbars inside the window, alignment, etc.

DoT Counts Don't Clear on Death

When dying, active counts for Shadow Word: Pain, Vampiric Touch, and Devouring Plague don't clear. Targets need to be purged/cleaned up.

Add Frame Strata Configuration Option

I'd like to use the Insanity Bar above some Weak Auras and UI elements that have a higher frame strata / z-index than the bar. Would be great to have the ability to configure the frame strata of the insanity bar.

Add option to remove decimals from FotM Casting

Fortress of the Mind increases Insanity generation by 20% for Mind Blast and Mind Flay, meaning these will generate 7 -> 8.4 or 3 -> 3.6 Insanity per cast. Some users don't like this precision being in the bar. Add a toggle to turn it off and as a result round the value (probably down).

Add Bar Indication of Hungering Void Target

Hungering Void's debuff can only be active on one target at a time. Add some hooks to the bar's text or UI to communicate easily if you have the right target targeted when this buff is active.

Ideas (some/all, pick+choose):

  • Variable used for Boolean logic
  • Colors
    • Have a "wrong target", "right target", and "no target has it" set of colors
    • Bar outline, bar fill, flashing, new layer/filter on top
  • Audio cue that you're on the wrong target when Void Bolt is off CD

Looking for ideas.

Color Picker

There seems to be an issue with the color picker, when selecting a color with an R, G or B component less than 16.

The resulting string will be one character shorter than expected
9, 255, 255 => FF9FFFF instead of something like 16, 255, 255 => FF10FFFF

This apparently confuses the color picker and a wrong color will be picked

I was trying to fix my backdrop to 42, 12, 52 but it would always change back to 42, 100+something, something

I settled with picking 54, 16, 68, which works without any issues

Change variable string parsing for $insanity

$insanityPlusCasting, $insanityPlusPassive, and $insanityTotal are broken right now due to how variables are parsed ($insanity gets caught first).

Add an exception to fix this. Preferably change the variable names or how variables are presented but that poses the risk of breaking customizations.

Reported by Grinikth.

Update Addon Description + Documentation

Need to update the description of the addon in a number of places. This includes:

  • High level description of the addon
  • Feature list
  • List of text configuration variables
  • Overview on text configuration Boolean logic support
  • Updated screenshots

Websites to update and do a 9.0.1 release on:

  • Curseforge/Overwolf
    • 9.0.2.x-release
    • Description
    • Screenshots
  • WoW Interface
    • 9.0.2.x-release
    • Description
    • Screenshots

Copy Bar Settings from Class/Spec Profile

Allow users to port the shared/common settings for the bar (size, position, threshold metadata, textures, font, colors) from one class or spec to another. Do as much 1:1 matching as possible with this.

Alpha Color is Reversed

The alpha sliders for choosing colors on the bar are reversed. It works, but goes against what it should be. This is a result of how the values are saved vs. represented.

This is a minor issue that, if changed, could make people's existing bars look odd. Adding code to do an inversion of the value is possible but adds complexity that could lead to breakage and would store unintuitive values in the config file.

Not sure if/when this will be addressed. Logging it for posterity.

Reported by Vxt.

Max Insanity Notification

When at max Insanity:

  • Add a bar color change
  • Text color change on resource
  • Add an optional audio notification

Suggested by Husky.

Add Support for Lib-SharedMedia

Add Lib-SharedMedia support for the bar so that users can select textures for the bar, fonts, and sounds to be used for events.

Update Addon Configuration Screens

Update the addon configuration screens in Interface to make a bit more sense and not be so cramped. We now have scrollable frames on each page so space isn't a problem (although the scrollbars are on the side of the window, which isn't ideal).

Voidform/S2M Summary Reports Incorrect Data

Reported by Exterminatus and others.

When combat ends while you are still in Voidform, the summary report printed to chat about your Voidform has horribly incorrect data associated with it.

Add Searing Nightmare Threshold

Requested by Soulmate on Discord:

you have 50 sanity mark in your addon, do you consider adding 35 sanity mark for SN when talented?

Reply:

Hi there. Yes, this is something I have planned. I was hoping to get in custom thresholds (so you could set them whereever you wanted) but think getting one in for SN specifically is more important than waiting. Should be put in the next release, sometime in ~12 hours I'd say. :slight_smile:

Add this in and convert it (as with DP) to a generic system later.

Related to #42

Add Surrender to Madness + TTD Color Notifications

From WCP Discord:

[6:28 PM] Nexim: Has anyone written an addon/WA yet which colors health bars (or similar) according to calculated ttl to help S2M play? As in red above 25 seconds, yellow betweeen 25 and 22 ish, green from 22 to 18, and black-/whiteout at below 18 seconds?

Add something configurable like this,

Support Other Specs (Shadowlands)

Expand support within the Bar for other specs.

  • Refactor the bar in to modules
  • Finish removing Shadow-centric code from shared modules
  • Move Shadow settings from being under the "default" to a new sub-object, including a way to automagically detect and move this data for existing users.
  • Implement bare-minimum text, current resource value, and minimal configuration options support for all specs:
    • Death Knight
      • Blood
      • Frost
      • Unholy
    • Demon Hunter
      • Havoc
      • Vengeance
    • Druid
      • Balance
      • Feral
      • Guardian
      • Restoration
    • Hunter
      • Beast Mastery
      • Marksmanship
      • Survival
    • Mage
      • Arcane
      • Fire
      • Frost
    • Monk
      • Brewmaster
      • Mistweaver
      • Windwalker
    • Paladin
      • Holy
      • Protection
      • Retribution
    • Priest
      • Discipline
      • Holy
      • Shadow
    • Rogue
      • Assassination
      • Outlaw
      • Subtlety
    • Shaman
      • Elemental
      • Enhancement
      • Restoration
    • Warlock
      • Affliction
      • Demonology
      • Destruction
    • Warrior
      • Arms
      • Fury
      • Protection

Custom Thresholds

Allow users to add secondary thresholds to the bar that behave like the Devouring Plague threshold does currently, but are configurable for different values.

Stretch goal: possibly move Devouring Plague to use this system.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.