brusalk / eventhorizon_continued Goto Github PK
View Code? Open in Web Editor NEWEventHorizon_Continued for Legion+
License: MIT License
EventHorizon_Continued for Legion+
License: MIT License
I was getting errors in LibArtifactData, which was preventing the artifact interface from working at all. Updating to the latest LibArtifactData from https://github.com/Rainrider/LibArtifactData-1.0 fixed the problems.
Not sure about other classes but druid has a few of these.
I suppose we'd need an option to say how many charges are possible, so the bar is empty at max charges and starts counting as soon as we use one. This would indicate a 'tic' line would be helpful while recharging so we can see when the next charge will come if we're n+1 charges below max.
http://www.wowhead.com/spell=202028/brutal-slash
This one is designed for add fights there you need to kill numerous low health targets quickly, for multiple wave fights knowing when you get new charges and how many you've got will be very useful.
Now for the tricky one which will have to have a choice made about what to display.
http://www.wowhead.com/spell=22842/frenzied-regeneration
So we've got charges, a recharge time and a short buff for the HoT.
Pretty sure that breaks the current limitation of EH.
However graphically it is done for other things already, I'm thinking of Vampiric Touch type spells. When you've cast them you have a DoT timer bar but as they have a cast time you normally cast the next one before it expires. When you do this you get a green cast bar over the top of the DoT bar.
That would work well for this but I've got no idea how much is involved in coding it. Unless there are other spells like this or you really want to beat the challenge I'd not worry about displaying the HoT. It only lasts for two GCD anyway, tracking the recharge time is more important I think. I doubt there are many players who'd actually press the button twice in a row.
[4:03 AM] Kynasha: @Brusalk my chat is being spammed with. "Matched 201467 | 1 / 1" on my demon hunter, when i disable EventHorizon_DemonHunter it goes away, I cant seem to find the cause in the code(edited)
[4:18 AM] Brusalk: @Kynasha How often are you getting spammed? is it non-stop after you login?
[4:18 AM] Kynasha: yes at a rate of once per every 2secs it seems
[4:22 AM] Brusalk: Can you run the following for me, and let me know what gets printed to your chat frame?
[4:22 AM] Kynasha: sure
[4:22 AM] Brusalk: /run print(LibStub:GetLibrary("LegionArtifacts-1.1"):GetArtifacts())
[4:23 AM] Kynasha: should i re-enable EventHorizon_DemonHunter?
[4:23 AM] Brusalk: shouldn't have to
[4:23 AM] Kynasha: table: 00000265268DCBD0
[4:25 AM] Brusalk: hmmmmm
[4:25 AM] Brusalk: something seems bugged with artifact checking
[4:25 AM] Kynasha: ive had fun with my own project and artifact libs so i feel you there
[4:26 AM] Brusalk: If you want to use the rest of the demon hunter class config, you can comment out the lines in the DemonHunter/config.lua file that reference requiredArtifactTalent
[4:28 AM] Cluey: I'm open to feedback on that config too @Kynasha, it was hard to work out without having access to all the talents.
[4:28 AM] Cluey: The feral one worked as I expected it to after I got my artifact weapon @Brusalk. ๐
[4:29 AM] Kynasha: ill see what i can do, but im pretty busy with my own project so no promises ๐
[4:30 AM] Kynasha: @Brusalk i can confirm that comment out bypassed the issue
[4:35 AM] Cluey: @Kynasha how upgraded is your weapon now?
[4:35 AM] Kynasha: on Demon Hunter not far, guild needed me to roll Enhancement Shaman
[4:35 AM] Kynasha: to which im on my 5th trait
[4:35 AM] Kynasha: at level 104
[4:36 AM] Cluey: I only got far enough to get the base weapon, then I had to sleep as I'm playing tour guide for my old raid leader as she's visiting my city.
[4:37 AM] Kynasha: nice!!
[4:37 AM] Cluey: I had wondered what happened with them as you leveled them, I assumed the spell stayed the same.
[4:38 AM] Cluey: I'm wondering if I missed the spell id's up for the two DH specs.
[4:38 AM] Kynasha: on the item or the use ability?
[4:38 AM] Cluey: I'm on a train though so I can't look.
The spell it gives.
[4:39 AM] Kynasha: the spell id on Havoc, Fury of the Illidari = 201467(edited)
[4:39 AM] Cluey: Is that the number in the line you commented out?
[4:39 AM] Kynasha: yes
[4:40 AM] Cluey: Hhmmm, all yours @Brusalk ๐
[4:40 AM] Brusalk: It should be the spellID of the artifact trait
[4:40 AM] Brusalk: not the ability
[4:40 AM] Brusalk: unless they're the same
[4:40 AM] Kynasha: same
[4:55 AM] Brusalk: Try replacing it with the spellID of the ones listed on http://www.wowhead.com/spell=201628/fury-of-the-illidari(edited)
Wowhead
Fury of the Illidari
Throws the Twinblades of the Deceiver in a whirlwind of energy, causing [7 * (140% + 140%)] Chaos damage over 3 sec to all nearby enemies.
[4:56 AM] Brusalk: 201628
[4:56 AM] Brusalk: 201467
[4:56 AM] Brusalk: 201789
[4:57 AM] Brusalk: see if one of those works
[5:02 AM] Kynasha: 201628 and 201789 - dont spam but don't show the spell either
[5:02 AM] Kynasha: only 201467 will show the spell
[5:15 AM] Brusalk: but still spams
[5:16 AM] Kynasha: yes
[5:25 AM] Brusalk: I wonder if there may be something weird with the library and how it handles the first gold trait
[5:25 AM] Brusalk: I'll look into it
I've been trying to remove the border from my frame to try and get it to fit in with my UI better.
Things I tried:
config.border = false
but that does nothing, I think it just defaults to the one in EventHorizon.lua which seems hard coded, for want of a better/correct phrase.
I got a solid white border by setting it to the same as the background with:
config.border = 'Interface\\ChatFrame\\ChatFrameBackground'
Setting the padding to zero doesn't work either.
config.edgesize = 8
config.inset = {top = 2, bottom = 2, left = 2, right = 2}
Changing config.edgesize = 4
and setting config.edgesize
to 1 for all of them is close to not having one.
I can turn the background off completely with config.backdrop = false
but it looks a bit funny without it, I suspect I could get used to it though.
I might be able to turn the background off and then set the bar backgrounds individually with the config.barbg
option but the server went down before I could try and I thought I should post this while I remembered what I'd tried.
To disable just the border I had to edit the main file, this is the section I edited. I've just commented out parts of it.
local c = self.config.backdrop
if c then
if not(self.styleframe) then self.styleframe = CreateFrame('Frame',nil,mainframe) end
else
if self.styleframe then self.styleframe:Hide() end
return
end
local styleframe = self.styleframe
local stylebg = self.config.bg or 'Interface\\ChatFrame\\ChatFrameBackground'
-- local styleborder = self.config.border or 'Interface\\Tooltips\\UI-Tooltip-Border'
local stylebgcolor = self.colors.bgcolor or {0,0,0,0.6}
-- local stylebordercolor = self.colors.bordercolor or {1,1,1,1}
-- local styleinset = self.config.inset or {top = 2, bottom = 2, left = 2, right = 2}
-- local stylepadding = self.config.padding or 3
-- local styleedge = self.config.edgesize or 8
styleframe:SetFrameStrata('BACKGROUND')
styleframe:SetPoint('TOPRIGHT', mainframe, 'TOPRIGHT')--, stylepadding, stylepadding)
styleframe:SetPoint('BOTTOMLEFT', mainframe, 'BOTTOMLEFT')--, -stylepadding, -stylepadding)
styleframe:SetBackdrop({
bgFile = stylebg,
-- edgeFile = styleborder, tileSize = 0, edgeSize = styleedge,
-- insets = styleinset,
})
styleframe:SetBackdropColor(unpack(stylebgcolor))
-- styleframe:SetBackdropBorderColor(unpack(stylebordercolor))
end```
Currently not showing.
Ideally it will show how many charges a buff of this type has too, bonus points for having a recharge time if applicable.
No idea what's going on here.
This is with just EH and Bugsack/BugGrabber enabled.
I tested even fewer addons and with just EH loaded, no class module, it does the same thing. :-(
[string "@EventHorizon\EventHorizon-1.10.1-beta.lua"]:4223: in function <EventHorizon\EventHorizon.lua:4218>
[string "@EventHorizon\EventHorizon-1.10.1-beta.lua"]:4448: in function <EventHorizon\EventHorizon.lua:4447>
[string "=[C]"]: in function `TaskPOI_OnEnter'
[string "@Blizzard_SharedMapDataProviders\WorldQuestDataProvider.lua"]:436: in function <...rd_SharedMapDataProviders\WorldQuestDataProvider.lua:435>
Locals:
tooltip = nil
id = 52987
type = "QuestID:"
found = false
(for index) = 1
(for limit) = 15
(for step) = 1
i = 1
(*temporary) = <table> {
UpdateOnBarHighlightMarksBySpell = <function> defined @FrameXML\ActionButton.lua:78
ERR_OUT_OF_CHI = "Not enough chi"
DH_HAVOC_CORE_ABILITY_2 = "Strong melee attack that consumes Fury. If it critical strikes, some Fury is refunded."
MultiCastActionButton6Cooldown = MultiCastActionButton6Cooldown {
}
MerchantItem9ItemButtonStock = MerchantItem9ItemButtonStock {
}
GetTrainerServiceTypeFilter = <function> defined =[C]:-1
UNIT_NAMES_COMBATLOG_TOOLTIP = "Color unit names."
SetTrainerServiceTypeFilter = <function> defined =[C]:-1
LE_GAME_ERR_CHAT_RAID_RESTRICTED_TRIAL = 741
SPELL_FAILED_CUSTOM_ERROR_71 = "This partygoer wants to dance with you."
LE_GAME_ERR_PET_SPELL_TARGETS_DEAD = 400
ERROR_CLUB_TICKET_COUNT_AT_MAX_COMMUNITY = "Can't create any more invite links for this community."
RecruitAFriendFrame = RecruitAFriendFrame {
}
CompactUnitFrameProfilesGeneralOptionsFrameHealthTextDropdownButtonNormalTexture = CompactUnitFrameProfilesGeneralOptionsFrameHealthTextDropdownButtonNormalTexture {
}
TutorialFrameLeft19 = TutorialFrameLeft19 {
}
MultiCastActionButton2Cooldown = MultiCastActionButton2Cooldown {
}
ERR_TRADE_EQUIPPED_BAG = "You can't trade equipped bags."
PVP_RANK_6_1 = "Corporal"
MultiBarLeftButton7 = MultiBarLeftButton7 {
}
InterfaceOptionsNamesPanelUnitNameplatesShowAll = InterfaceOptionsNamesPanelUnitNameplatesShowAll {
}
VideoOptionsFrameDefaults = VideoOptionsFrameDefaults {
}
MerchantItem1AltCurrencyFrameItem1Text = MerchantItem1AltCurrencyFrameItem1Text {
}
OPTION_TOOLTIP_ACTION_BUTTON_USE_KEY_DOWN = "Action button keybinds will respond on key down, rather than on key up."
BINDING_NAME_NAMEPLATES = "Show Enemy Name Plates"
CHAT_HEADER_SUFFIX = ": "
MultiBarBottomRightButton8Shine5 = MultiBarBottomRightButton8Shine5 {
}
COVENANT_MISSIONS_HEALTH = "Health"
MAIL_LETTER_TOOLTIP = "Click to make a permanent
copy of this letter."
UnitFrameManaBar_UnregisterDefaultEvents = <function> defined @FrameXML\UnitFrame.lua:782
PaperDollTitlesPaneButton10BgTop = PaperDollTitlesPaneButton10BgTop {
}
DUNGEON_FLOOR_UPPERBLACKROCKSPIRE3 = "Hall of Blackhand"
CHAT_CONFIG_OTHER_COMBAT = <table> {
}
FCFDockOverflowButton_OnClick = <function> defined @FrameXML\FloatingChatFrame.lua:2379
TutorialFrameRight19 = TutorialFrameRight19 {
}
ChatFrame6EditBoxFocusMid = ChatFrame6EditBoxFocusMid {
}
BN_UNABLE_TO_RESOLVE_NAME = "Unable to whisper '%s'. Blizzard services may be unavailable."
AutoCompleteEditBox_OnKeyDown = <function> defined @FrameXML\AutoComplete.lua:366
CompactRaidFrameManagerDisplayFrameHiddenModeToggleTopRight = CompactRaidFrameManagerDisplayFrameHiddenModeToggleTopRight {
}
LFGTeleport = <function> defined =[C]:-1
LE_GAME_ERR_ONLY_ONE_QUIVER = 32
INT_SPELL_DURATION_HOURS = "%d |4hour:hrs;"
ToggleEncounterJournal = <function> defined @FrameXML\UIParent.lua:1035
LOSS_OF_CONTROL_DISPLAY_FEAR = "Feared"
Graphics_QualityText = Graphics_QualityText {
}
OverrideActionBarButton6Shine11 = OverrideActionBarButton6Shine11 {
}
ROGUE_COMBAT_CORE_ABILITY_4 = "Melee attack that spends Combo Points."
JoinSkirmish = <function> defined =[C]:-1
FriendsFriendsScrollFrameButton14 = FriendsFriendsScrollFrameButton14 {
}
Advanced_GraphicsAPIDropDownButtonHighlightTexture = Advanced_GraphicsAPIDropDownButtonHighlightTexture {
}
MultiBarRightButton7Shine9 = MultiBarRightButton7Shine9 {
}
BankFrameItem17SearchOverlay = BankFrameItem17SearchOverlay {
}
LFGListSearchPanelScrollFrameButton10BottomRight = LFGListSearchPanelScrollFrameButton10BottomRight {
}
DMG_LCD = "DMG"
RaidGraphics_EnvironmentalDetailSlider = RaidGraphics_EnvironmentalDetailSlider {
}
GuildNewsFiltersFrameText = GuildNewsFiltersFrameText {
}
Is64BitClient = <function> defined =[C]:-1
SecureCmdItemParse = <function> defined @FrameXML\ChatFrame.lua:1142
SLASH_STOPATTACK1 = "/stopattack"
MultiCastActionButton4H```
SPriest surrender to madness does funky things to the GCD cap.
Provided by Martinkaca
https://cdn.discordapp.com/attachments/201924555818795008/206945466565394432/config.lua
This is a problem I encountered when I wrote configs for Warrior ( #99 ).
The recharge spells do not work correctly with cooldown resets. For example, Raging Blow spell for Fury do not recharge properly - when cooldown reset happens, EventHorizon does not show that I have a free charge available - it shows that both my charges have the same expiration time.
Example: https://cdn.discordapp.com/attachments/201924555818795008/470482986756866048/unknown.png
As you see, I have 1 free charge on Raging Blow, but EHZ shows it as having 0 free charges.
I almost forgot this one.
I was trying to find what the spellid was for a debuff as it was different from the spell, so I moved my mouse over the debuff and got an error.
EventHorizon\EventHorizon-1.9.22-beta.lua:4164: in function <EventHorizon\EventHorizon.lua:4152>
EventHorizon\EventHorizon-1.9.22-beta.lua:4199: in function <EventHorizon\EventHorizon.lua:4197>
[C]: in function `SetUnitDebuff'
[string "*:OnEnter"]:2: in function <[string "*:OnEnter"]:1>
Locals:
InCombatSkipped
Class configs are missing version numbers
I'm not exactly sure what triggered this error, I think it might have been the mob I had targeted got a DoT put on it by me using Sunfire on the one next to it.
Does that sound plausible?
I've had it happen a couple of times but when it happens I'm in the middle of an M+ run and I don't have time to work out what the problem was. This time it happened at the start of a boss fight I was healing so I couldn't reload my UI until the end, I was half expecting WoW to crash.
244x EventHorizon\EventHorizon-1.9.24-beta.lua:1566: attempt to perform arithmetic on a nil value
EventHorizon\EventHorizon-1.9.24-beta.lua:1566: in function `UpdateDoT'
EventHorizon\EventHorizon-1.9.24-beta.lua:1306: in function `UNIT_AURA'
EventHorizon\EventHorizon-1.9.24-beta.lua:799: in function `f'
EventHorizon\EventHorizon-1.9.24-beta.lua:699: in function <EventHorizon\EventHorizon.lua:690>
Locals:
InCombatSkipped
I got this error when I moved my cursor over a currency on my character pane.
I've been doing some research trying to make a few old addon I use work. As a result I found a summary of changes.
GetCurrencyListLink
has been replaced with C_CurrencyInfo.GetCurrencyListLink
and changing that removes this error.
I contemplated a pull request on the main file but that file is, mostly, way out of my league so I've just made this error report.
[string "@EventHorizon\EventHorizon-1.10.1-beta.lua"]:4434: in function <EventHorizon\EventHorizon.lua:4433>
[string "=[C]"]: ?
[string "@TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua"]:425: in function `SetCurrencyToken'
[string "*:OnEnter"]:2: in function <[string "*:OnEnter"]:1>
Locals:
self = GameTooltip {
0 = <userdata>
SetQuestLogRewardSpell = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
OnBackdropLoaded = <function> defined @SharedXML\Backdrop.lua:205
ItemTooltip = <unnamed> {
}
SetHyperlink = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
RightEdge = <unnamed> {
}
ClearBackdrop = <function> defined @SharedXML\Backdrop.lua:335
Show = <function> defined =[C]:-1
SetPetAction = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
SetLootItem = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
numMoneyFrames = 1
SetRecipeReagentItem = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
SetBuybackItem = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
SetCurrencyTokenByID = <function> defined =[C]:-1
SetupTextureCoordinates = <function> defined @SharedXML\Backdrop.lua:267
TopRightCorner = <unnamed> {
}
SetTalent = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
GetEdgeSize = <function> defined @SharedXML\Backdrop.lua:241
updateTooltip = 0.066000
SetInventoryItem = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
TopEdge = <unnamed> {
}
SetLootRollItem = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
SetBagItem = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
BottomRightCorner = <unnamed> {
}
SetBackdropColor = <function> defined @SharedXML\Backdrop.lua:452
LeftEdge = <unnamed> {
}
SetCurrencyByID = <function> defined =[C]:-1
textLeft1Font = "GameTooltipHeaderText"
SetCurrencyToken = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
SetGuildBankItem = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
hasMoney = 1
TopLeftCorner = <unnamed> {
}
SetQuestRewardSpell = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
TextRight1 = GameTooltipTextRight1 {
}
ApplyBackdrop = <function> defined @SharedXML\Backdrop.lua:347
SetBackdrop = <function> defined @SharedXML\Backdrop.lua:382
TopOverlay = <unnamed> {
}
GetBackdropBorderColor = <function> defined @SharedXML\Backdrop.lua:462
GetBackdrop = <function> defined @SharedXML\Backdrop.lua:400
SetUnitDebuff = <function> defined =[C]:-1
SetQuestItem = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
SetBorderBlendMode = <function> defined @SharedXML\Backdrop.lua:319
SetTrainerService = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
comparing = false
BottomOverlay = <unnamed> {
}
BottomLeftCorner = <unnamed> {
}
SetInboxItem = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
SetMerchantItem = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
TextLeft1 = GameTooltipTextLeft1 {
}
BottomEdge = <unnamed> {
}
SetShapeshift = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
backdropInfo = <table> {
}
OnBackdropSizeChanged = <function> defined @SharedXML\Backdrop.lua:235
SetUnitBuff = <function> defined =[C]:-1
GetBackdropColor = <function> defined @SharedXML\Backdrop.lua:443
SetTradePlayerItem = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
textRight1Font = "GameTooltipHeaderText"
SetSendMailItem = <function> defined @TheUndermineJournal\libs\LibExtraTip\LibExtraTip.lua:419
HasBackdropInfo = <function> defined @Shared```
Since release 1.9.11 the default config.height
has been 37, I really hope that was a typo as it looks really strange depending on the number of bars you have. With a low amount you can clearly work out what they are but then they start becoming undecipherable.
Ideally we'd be able to have this dynamically set by config.staticheight
/ #bars shown with a minimum value of about 17. No idea if that is possible to do though.
Alternatively work out an average amount of bars expected to be shown and divide config.staticheight
by that.
This is what it looks like for a druid depending on spec/stance/affinity, these aren't all likely scenarios but that was the easiest way to get a different number of bars and a consistent size.
Warriors have no common spell ID -- Should either add spec-specific GCD Spell IDs, or split class configs up into spec configs.
Is there any way to track the shortest CD when adding multiple spells to the same bar? I couldn't find any option in the documentation.
If not possible currently, would it be possible to add a flag for it?
[12:01 AM] Driphter: Yeah, the code uses EventHorizonDB.redshift.isActive
[12:11 AM] Driphter: Yep it checks the config setting for changes and syncs the db setting in Redshift.Init() but won't run it unless EventHorizonDB.redshift.isActive is true
[12:11 AM] Driphter: So the db never gets updated
[12:40 AM] Brusalk: I think the idea there is that it'll not display ever if you configure it in-game to not show
[12:40 AM] Brusalk: cuz you didn't want it to show
[12:41 AM] Brusalk: So I guess you disabled it in-game sometime in the past?
[12:41 AM] Brusalk: or am I misunderstanding what you guys mean
NEW MESSAGES
[12:41 AM] Driphter: It's disabled be default in the config and in the db
[12:42 AM] Driphter: If you enable it in the config but not in-game, nothing happens.
[12:43 AM] Driphter: The config option has no bearing on anything
[12:44 AM] Driphter: Well, you might be able to disable it from the config by changing it from enabled to disabled
Not sure if this is possible, obviously it's not possible at the same time but I've run into a couple of spells which apply a debuff and when the target dies then give the player a buff.
Currently it's not possible to track this.
Nemesis http://bfa.wowhead.com/spell=206491/nemesis
Soul Reaper is the other. http://bfa.wowhead.com/spell=130736/soul-reaper
Kind of surprised no one else brought this up, but I get these warning popups:
Message: Error loading Interface\AddOns\EventHorizon_Configs\core_my_config.lua
Time: Thu Jul 19 22:57:28 2018
Count: 3
I don't use the myconfig features, so removing the offending lines from the toc files fixed it for me.
While I remember, before I get a few hours sleep.
While adjusting the class configs and cross referencing the Wowhead, incremental, patch notes I noticed that one of the Rogue talents has been moved to a PvP one for all specs.
This made me think about how we could support that, it's a lot more relevant now as people can turn on War Mode and be PvP on any server.
Also some of the Azerite traits might need tracking, I haven't looked in detail but there might even be some active ones. I guess we need a way of supporting that too.
Not sure if this is at all possible but as the title says, can we show tick indicators without an active buff or debuff?
I've only looked at 12 specs so far but there might be more where it would be useful.
Currently it's only Frost DK where I came across it:
http://bfa.wowhead.com/spell=253593/inexorable-assault
I've got it tracking currently but as soon as you're out of charges you lose the indicator of when you'll get the next one, we could just not track it but I think it should be as knowing if the next charge will come before the end of Pillar of Frost ends sounds like something we should help people do.
* Config: Added support for individual bar coloring and textures. Three new options are available in the class config. Also, an extra flag has been added for bar icons.
- bartexture: Sets a custom texture for this bar. Applies to buffs, debuffs, and cooldowns. (example: bartexture = "Interface\\Addons\\EventHorizon\\Smooth")
- barcolor: Sets a custom color for active buffs and debuffs for this bar. Does not support class coloring. (example: barcolor = {Red,Green,Blue,Alpha}, ie {1,0,0,0.6} )
- barcolorunique: Sets a custom color for 'unique' spells for this bar. If barcolor is set and this is not, unique spells will show with barcolor's setting instead. Same format as barcolor.
- keepIcon: Will force the bar icon to stay the same if it would normally change itself when a different spell is being shown. See the Warrior config for usage.
These aren't getting passed through to NewSpell by newSpell()
See #49
Part of the recharge feature was a numerical display of the current charge, but our current last-write-wins approach can make this confusing for some bars.
Currently for spell configs that indicate multiple buffs/debuffs on one bar, we icon displayed is whatever was casted most recently.
This doesn't really make sense since we'll be showing the shortest buff/debuff duration-wise. Instead, we should show the shortest buff/debuff as the icon.
herper
I noticed since the update Wreak Havoc doesn't show its up unless you are targeted to the mob it is cast on. Since wreak havoc is a timed buff that causes duplicate damage of that cast on a separate mob. would it be possible the code it to show till it expires or mob with debuff dies. If you want you can tell me what to do.
Some classes can have followers that cast spells with the same name and source as player spells, but aren't actually player spells. (Rexxary hunter ID 220874 and Player 185855)
I've been trying to make concise configs without too many bars which are just tracking a CD.
This is hard for a few specs, Havoc springs to mind, but for others they've got a buff or a debuff without an associated CD for it. In an effort to stop the display ballooning out to 8+ bars I've been using these bars to track a CD too.
While this is great for people who look in the config or test a bit on a target dummy I suspect we've got a few users who haven't picked up on what's going on.
I'm proposing we add an icon on the RHS of the display which matches the CD being tracked.
While on CD it should be desaturated, or hidden all together if it's a long CD, but when it's coming up to being ready it should fade in, becoming full colour when it's ready.
An option to make it glow would be good for reminding about DPS CD but not an on by default thing as knowing a defensive is ready doesn't mean it should be constantly glowing.
I think this might be a bit better than the idea of a tooltip telling people what is being tracked, but while it appeals to me I might be in my own little world so feedback is welcome. :-)
As topic says.
This is the reminder you requested.
We'll need a way of tracking the different abilities the covenants give, I haven't looked them all up yet but I thought I should flag it here. I'll try and look them up if nobody else gets to it before me.
Hopefully you'll be able to modify the code you added for the artifact abilities from Legion.
Now I've looked at quite a few classes I've noticed that a, one time frame fits all, model isn't that great.
Feral want's, at least I want (15), longer but hunter doesn't need long at all - 9 would do.
I've no idea how hard that is to do from the coding side.
Also being able to set that within the game, be it command line or not, would help people set it up how they'd prefer.
Provided by Ourex
-- Chi Wave
self:newSpell
cooldown = 115098,
requiredTalent = 4,
-- Keg Smash
self:newSpell
cooldown = 121253,
requiredTree = 1,
-- blackoutstrike
self:newSpell
cooldown = 205523,
requiredTree = 1,
-- breath of fire
self:newSpell
cooldown = 115181,
debuff = 123725,
requiredTree = 1,
-- -- Chi Burst
self:newSpell
cooldown = 123986,
cast = 123986,
requiredTalent = 6,
-- brew cooldown
self:newSpell({
cooldown = {115308, 119582},
playerbuff = 215479,
requiredTree = 1,
There are some spells out there which get a charge count without being on a recharge timer, I was thinking it would be nice to be able to use the segmented bar to display the charges.
The initial spell which made me think about this was:
http://www.wowhead.com/spell=112965/fingers-of-frost
But since then I've also found another!
I've, now, noticed the big difference between these and the recharge implementation is that these are buffs!
Which is cool as that means we can track a CD underneath them.
Bonus points for being able to colour the different segments of the bar individually.
My thinking here being that it's easier to tell at a glance, or with peripheral vision, when you're at max stacks and you should use one so you don't waste the next charge.
I could make a dodgy paint picture up if you'd like but I think you know what I mean.
We could do with a way of displaying DoT indicators working backwards from the expiry of a buff.
In this case they're not actual 'ticks' of the debuff but indicators to show when you can get a cast off before the debuff expires.
This is more relevant for Marksmanship hunters.
The [url=http://www.wowhead.com/spell=187131/vulnerable]Vulnerable[/url] debuff increases damage taken from certain abilities, Aimed Shot is one of them and the one which requires this indicator.
As [url=http://www.wowhead.com/spell=19434/aimed-shot]Aimed Shot[/url] has a cast time you need to be able to see if you've got time left to cast it.
I think this means we'd need the indicators to adjust with current haste levels.
In the current config I've just got a two second DoT indicator on the Vulnerable debuff bar, it helps a bit but is nowhere near as clear as other options out there.
For spells like:
http://www.wowhead.com/spell=145205/efflorescence
http://www.wowhead.com/spell=114158/lights-hammer
There might be others, I don't know.
I've also got no idea how you'd track this, for Light's Hammer at least you can track the cooldown so you know when you can cast it again. There's just no way of knowing who's standing in it.
For Efflorescence it doesn't have a cooldown or provide a buff but lasts 30 seconds, once again we can't track who's standing in it.
How does GCD spell ID work for classes whose specs don't share an ability that has no cooldown? Warriors, at least at level 20, don't have a single ability shared between all three specs that doesn't have a cooldown, so it seems like I'm unable to have GCD tracking.
Abilities like Cata and Erad have changed locations in the talent tree, so the class config has to be updated to match new talent changes.
Binkenstein: btw @Brusalk you might want to tone down all the initial load popups that happen, I think you've got about 3 with the discord one now
[2:20 PM] Binkenstein: Slightly annoying when setting up a new character ๐
[2:20 PM] Brusalk: It should only happen for the first time per-account though yeah?
[2:20 PM] Brusalk: or is it happening again for every new toon
[2:33 PM] Binkenstein: Get it on creating new characters too
I've been trying to work out how to deal with Germination in the resto config.
http://www.wowhead.com/spell=155675/germination
It lets you cast two Rejuvination on the same target but instead of just increasing the stack size to two, like the initial version of Lifebloom did, the second one has a different spellId.
This is the current config I have for it, it works to show either buff and the icon changes, after the Rejuvination expires, to the Germination one.
-- Rejuvenation
self:newSpell({
requiredTree = 4,
stance = 0,
requiredLevel = 10,
playerbuff = {{774,3},{155777,3}},
auraunit = usemouseover and 'mouseover' or 'target',
hasted = true,
refreshable = true,
})
Is it possible to add some kind of logic in there to show a stack count when both buffs are detected?
Currently you can't tell two are on your target without remembering or adding another bar to track just the second one.
There are already too many bars for this spec. ๐
Window doesn't load and /ehz or /eventhorizon do not appear to work.
Cheers!
Probably only useful for tracking procs on a single bar.
Would need a way of specifying which one would get priority to be displayed, I'm sure there will be more than just Guardian spec where one proc has a higher value than the other so you want to use it first. Also using the other ability might reset the other!
Event Horizon doesn't work with this addon installed and enabled. It gets as far as parsing the current class config, but doesn't get to a state where the frame can be shown or the /ehz ... commands can be used.
Pulled from Discord chat. Suggested by Thunder
I'm not that used to EHZ configs in detail, until now I always just adjusted my personal bars; but what could help with many bars is if you can insert (maybe smaller than default) placeholders that split up your bars in e.g. Rotation and CD segments(edited)
I don't know what triggered this and I've not seen it before.
I, finally, logged my rogue in and I was near a hostile NPC which attacked me before everything had loaded.
Edit 1. It's something to do with the rogue class, I haven't spent any talent points yet and won't until I've tested some more.
Edit 2. It only happens in Assassination or Pirate (Outlaw) spec.
Edit 3. Disabling all other addons except Bugsack/Buggrabber it only errors in Pirate spec. I'm very confused now.
[string "=[C]"]: in function `min'
[string "@EventHorizon\EventHorizon-1.10.1-beta.lua"]:1899: in function `f'
[string "@EventHorizon\EventHorizon-1.10.1-beta.lua"]:806: in function <EventHorizon\EventHorizon.lua:797>
Locals:
(*temporary) = nil
(*temporary) = nil
(*temporary) = "number expected, got nil"
This happened on my priest when I changed specialisation a few times.
Message: Interface\AddOns\EventHorizon\EventHorizon.lua:1963: table index is nil
Time: 07/24/16 00:29:29
Count: 17
Stack: Interface\AddOns\EventHorizon\EventHorizon.lua:1963: in function `Deactivate'
Interface\AddOns\EventHorizon\EventHorizon.lua:2269: in function `CheckRequirements'
Interface\AddOns\EventHorizon\EventHorizon.lua:1997: in function <Interface\AddOns\EventHorizon\EventHorizon.lua:1992>
Locals: self = <unnamed> {
0 = <userdata>
Activate = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1972
UNIT_AURA_refreshable = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1404
SPELL_UPDATE_COOLDOWN = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1750
RemoveChannelTicksAfter = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1263
UNIT_SPELLCAST_CHANNEL_START = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:986
Deactivate = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1958
PLAYER_EQUIPMENT_CHANGED = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1807
dot = 1
RemoveTicksAfter = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1251
OnUpdate = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:928
UpdateDoT = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1486
isType = "debuffmine"
hasted = true
UpdateTotem = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1611
isActive = true
AddTicks = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1312
NotInteresting = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:811
UNIT_SPELLCAST_CHANNEL_UPDATE = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1016
interestingEvent = <table> {
}
BAG_UPDATE_COOLDOWN = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1750
interestingCLEU = <table> {
}
castsuccess = <table> {
}
indicators = <table> {
}
UNIT_SPELLCAST_START = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:986
UNIT_SPELLCAST_SENT = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:980
UNIT_SPELLCAST_DELAYED = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1016
Remove = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:910
auraunit = "target"
PLAYER_REGEN_ENABLED = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1736
AddIndicator = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:832
UNIT_SPELLCAST_STOP = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1031
UNIT_AURA = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1404
PLAYER_TOTEM_UPDATE = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1044
UPDATE_MOUSEOVER_UNIT = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1908
COMBAT_LOG_EVENT_UNFILTERED = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1346
debuffs = <table> {
}
refreshable = true
FindItemInfo = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:816
AuraFunction = <function> defined =[C]:-1
UNIT_SPELLCAST_CHANNEL_STOP = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:1031
cast = <table> {
}
AddSegment = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:900
stacks = <unnamed> {
}
icon = <unnamed> {
}
}
(*temporary) = <table> {
Void Eruption = <unnamed> {
}
Shadow Word: Death = <unnamed> {
}
Mindbender = <unnamed> {
}
}
(*temporary) = nil
(*temporary) = <userdata>
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "table index is nil"
mainframe = <unnamed> {
0 = <userdata>
UPDATE_SHAPESHIFT_FORM = <function> defined @Interface\AddOns\EventHorizon\EventHorizon.lua:2285
COMBAT_LOG_EVENT_UNFILTERED = <function> defined @Interface\AddOns\EventHorizon\E
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.