Closed tmw-issue-import closed 11 years ago
You could use a Combat Event icon to notify you when the person before you has used their ability. Set the timer so that it will be the duration between when they use their ability and when you use your ability, and then add some On Finish event handler to scream and yell at you to use your ability.
I'm not familiar with what Interrupting Jolt is since I don't raid anymore, but if it fits with what the ability is (I'm guessing its a cast that causes a ton of raid damage?), you could also set the timer to be slightly longer than the window in which you need to use your ability, add a condition to watch for Interrupting Jolt, and then add an On Show event handler to scream and yell at you. Since the icon will only be shown while counting and while the condition passes, it will only show right after the last person used their ability when IJ is happening, but the timer will expire before it is time for the next person to use theirs after you use yours.
The problem with the first suggestion is that I don't want to rely on other people in my raid to always remember their cooldowns.
The problem with the second suggestion is that some boss timers are not quite that predictable and might work with a cooldown and then have a certain window in which they're cast. They also might interact with other boss abilities, altering the timers further.
What do you propose for a new icon type, then? How does it function and what configuration options are available?
Ideally it'd be some kind of counter that counts how often a boss has used a certain ability and resets when the encounter resets. It wouldn't have to be a new icon type, just a condition that can be set to something like ("Interrupting Jolt" = 6) or ("Interrupting Jolt" = 9).
Added in r794. Spell Cast Count in the Spells/Items category.
If you want to use it in a Lua condition, use
or
Posted by CurseForge user Cybeloras
Tracks things per GUID. Players will never be reset. Pets will be reset when summoned (since they get a different GUID every time). Bosses will get a different GUID every time they are spawned (well, I sure as hell hope they would. Would be weird if they didn't), so a boss will reset for each attempt. Normal NPCs will be reset when they die and a new one spawns in its place.
If a unit dies close enough to the player to be seen in the combat log, its data will be immediately forgotten (although the condition may not be immediately updated to reflect that). Unit Cooldowns now behave the same way too (as of the last revision as of the time of writing this comment) - non players that die will have their cooldown data wiped to prevent excessive memory usage.
If you want some functionality like having the condition pass every N casts, do something like this in a Lua condition:
where N is the first cast that the condition should pass for and M is the number of casts after that at which it should be shown.
For example, if N = 2 and M = 3, then the condition would pass on the 2nd, 5th, 8th, 11th, etc. casts. If N = 0 and M = 2, the the condition would pass on every even numbered cast (including 0).
Going to sleep now, I can help more tomorrow.
Is the counter going to go up when the unit starts casting or finishes? Either can probably work, in my case it'd just usually be simpler if the counter jumped at the beginning of a cast. Then again, somebody else might only be interested in successful casts.
It starts when the cast finishes. The combat log is very restrictive about notifying of when casts start (it doesn't notify at all, actually - you can only check this using the UNIT_SPELLCAST_START event, which only works for units that have a valid unitID), so it has to work when the cast finishes. Channeled casts are counted as soon as they begin.
I didn't follow the conversation from the start but I'm pretty sure bosses don't get a new GUID when they spawn.
If that was the case things like LibBossIDs-1.0 would never work or wowhead having static NPCID.
If I misunderstood what you were discussing, apologies :P
A unit's GUID isn't the same as its npcID. npcID is actually one part of the GUID, but there is a lot more to it. My GUID, for example, is 0x0580000008311F15, and it will stay the same until I were to pay to transfer off the server I play on (although the first bit of it may change as I hop across realms and instances and battlegrounds - I'm not sure if that is true anymore since everybody is always in the cross-realm system now as opposed to only being it it for battlegrounds, but it used to be the case a long time ago).
The GUID of the spawn of Cloudrunner Leng, the flying trainer in the alliance city in Pandaria, that is on Aerie Peak right now, is 0xF130EB0600000C92. 0xEB06 is the part of that that is his npcID (60166 in base 10). 0x000C92 is his spawn counter. If he were to be somehow killed, the one that replaces him would have a different spawn counter.
Alright, I've done a few bosses now with the new condition and I am able to achieve the functionality that I'm looking for, I just feel like it could be done a little simpler. Since I only want to be alerted when say Interrupting Jolt #6 is incoming in 3 seconds I need some kind of timer to count the seconds since the last Interrupting Jolt was cast. And the only way I can do that is via a combat event icon. So I need to make a new combat event icon for every spell. Example:
^1^T^SType^Scleu ^SConditions^T ^N1^T ^SType^SCASTCOUNT ^SUnit^Sboss1 ^SName^SInterrupting`Jolt ^SLevel^N6 ^t^Sn^N1 ^t^SSourceUnit^Sboss1 ^SName^SInterrupting`Jolt ^SFakeHidden^B ^SShowWhen^N1 ^SCustomTex^SDemoralizing`Banner ^SCLEUEvents^T ^SSPELL_CAST_SUCCESS^B ^t^SCLEUDur^N15 ^SEnabled^B ^t^N62045^S`| ^Sicon^^
Also I haven't been able to figure out what I should do if I was supposed to take the first ability. This happened with Cosmic Barrage on Twin Consorts. Since there is no preceding Cosmic Barrage to start the timer I would have to start a timer when the boss is pulled, which doesn't seem to be possible. I've been thinking for a while on possible solutions. The one that would require the least changes to the addon would probably just to make 'raidboss engaged' a detectable event for combat event icons. The (for me) more userfriendly solution would be to add another box to the spell cast count condition "time since last cast", where if there is no last cast it uses the time since the boss was engaged instead. Then again this could be its own condition. Then again I could just use a combat event icon. Then again most conditions would be redundant following that logic.
I think we are starting to reach the point that these features are just becoming far too specific for what TMW was originally intended for - a simple-yet-versatile combat tracking addon. Some things do make sense being added as some generalized function, like the Cast Count condition, since they could be used for a ton of different purposes.
Adding another input to the condition just isn't possible without a huge redesign of the condition editor. The best way to implement this whole thing would be as a new icon type, but it isn't something that I am going to develop at this point - my WoW sub runs out in less than two weeks, and after that, that's it as far as new features in TMW developed by me go.
I may hop on the beta for the next expansion once us addon authors get our free keys and add in whatever needs to be added for basic functionality with whatever API changes and game system changes are made - but that is still at least 6 months away, possibly even up to a year.
I don't mean anything malicious by this, but there does exist a point where addon functionality should end and playing the game with a high level of situational awareness & communication should begin. If you or somebody else wants to develop new things like this for TMW (http://wow.curseforge.com/addons/tellmewhen/pages/api/) then feel free to do so, but I personally can't see anything more along these lines of a raid cooldown usage helper fitting into TMW. Sorry.
You could do that using a condition icon - either check Unit Exists ("boss1") or check IsEncounterInProgress()
in a Lua condition.
I've never actually used IsEncounterInProgress and wasn't aware that it existed until about 2 minutes ago, so I'm not sure how good it will be or what exactly determine if an encounter is in progress. Its only use in FrameXML is to disable the "Release Spirit" button while in a boss fight, so it should be OK. I don't know what events it might respond to, so it will not be very efficient just as a Lua condition or as a normal condition with no events (but you would have to have tens or of thousands of calls per second before you would notice a difference in framerate).
The thing is I want to start a timer as soon as I enter combat so I can alert myself after x seconds that an ability is incoming.
IsEncounterInProgress() should do just that - I believe that it will start returning true the moment that you engage a boss.
I'm not sure how this would work. Suppose I want to show an icon 45 seconds after we've pulled a boss. How would I use IsEncounterInProgress()?
Uhhh... Uh.......
Shit. Condition icons need a "Only show if timer is not active" option, don't they? Otherwise, there really isn't a way. I ran into this same problem helping someone else a few hours ago - I was trying to pull some wizard magic using condition icon timers and it just didn't work very well at all - the end solution I came up with was quite horrifying.
I'll get back to you when I've added this in. Brb, churning code.
For r800
^1^T^SType^Sconditionicon ^SOnlyIfNotCounting^B ^SConditionDurEnabled^B ^SConditionDur^N45 ^SCustomTex^S1 ^SConditions^T ^N1^T ^SType^SLUA ^SName^SIsEncounterInProgress() ^t^Sn^N1 ^t^SEnabled^B ^t^N62047^S~`~| ^Sicon^^
Alright, next idea.
We've been sophisticating our raid tactics and specifying cooldowns like so:
[1] Interrupting Jolt Ghinz Rally 0:00:00
[2] Interrupting Jolt Crymlink devo 0:00:18
[3] Interrupting Jolt Jéddy devo 0:00:36
[4] Interrupting Jolt Jav devo 0:00:54
[5] Interrupting Jolt Qel Rally 0:01:12
[6] Interrupting Jolt Hayek Rally 0:01:30
[7] Interrupting Jolt Ghinz Banner Scripè 0:01:48
[8] Interrupting Jolt Qel Banner Lorane 0:02:06
[9] Interrupting Jolt Hayek Banner Toscar 0:02:24
[10] Interrupting Jolt Valkiery Spirit Shell Syysigkeiten 0:02:42
[11] Interrupting Jolt Scylla Spirit Shell Laeryth 0:03:00
Do you think it would be possible to make an icon that would reliably inform me when it was my turn to pop a certain cd?