This site works best with JavaScript enabled. Please enable JavaScript to get the best experience from this site.
Forgot some:
Pet events: -Pet died (You killed Fluffy, you bastard! -Pet crits (Go for the eyes, Fluffy!)
I love them all! So much potential...
So many new event triggers makes me want both a better GUI and a better data structure format for the EventTable and its keys. What do you think about adding these events under the current paradigm of event key strings (SS 3.3.5.xx) and then figure out how to change it later as it outgrows the current GUI design? It would mean more data to work from when designing the next version of the implementation, but also more work in oldversions.lua if we need to redesign the event keys in the future.
I really don't have a better idea (still!) than EventTable[key] as a quick way of finding whether an event should be announced. Even if keys are changed to spellIds were applicable, that's still using a key string, which still drives the GUI to want to list them (or do something to ensure that specified keys are all valid).
EVENT_MONSTER_SPEECH_TASTE_THE_FLAMES_OF_SULFURON as an event key just makes me shudder. That's how it would have to be done in SS 3.3.5.xx where we are today, but that's a horrible way of doing it. It should just be a monster speech event, and the callbacks should be in a cascading/nested data structure under that somewhere. Add that "No thanks, spicy foods give me gas" should be one of N random callbacks.
Anyway, putting aside my rambling about the backend issues, this is such a long list that the ticket will be hard to close. Each event trigger should get its own ticket if it has any significant issues related to its implementation. Many of these could be added pretty easily within the current framework without changing the event key system or redesigning the GUI at all. For example gaining and losing aggro should be pretty easy. I think it's only worth making a separate ticket if it's going to require extra thought or design work outside the current framework, or neither of us feels like implementing it right away (many tickets I've created exist as reminders) or for anything else that's significant.
From this list, I'll break them into 2 categories.
Category A: the easy ones. These events that should fit well within the current framework without a need to enhance the engine:
These events strike me as harder and would require enhancements to the engine.
For both of those, I just don't want to see a flat list of every boss speech and boss emote that you want to react to, each defined as it's own event key the way each spell is listed... it calls for a better data structure design in that area.
Just a few notes and responses to a couple questions.
For mounts and companions, another approach could modify what we do now in templates.lua, and move that function from "/ss import" to always at load time. I got the code from Mountiful, and modified it slightly. It scans the pet/mount spellbook, and scans each tooltip to determine the class of mount (flying, fast, very fast, 310, swimming, etc). I currently use this code to generate a set of templates which you can import to map each mount summoning spell to the correct "/ss macro mount category" macro for that category of mount. Then summoning or dismissing a mount or pet is detected from UNIT_SPELLCAST_SENT.
We could move this code to generate a table of known mounts/pets at load time, and then check that table during UNIT_SPELLCAST_SENT (or succeeded) to determine whether you just cast the spell to summon whichever kind of mount, then fire an event for mounting, and/or a more specific event for mounting on a 310 flying mount, or a swimming mount, or a slow ground mount, etc.
We could cache the list in the SavedVariables and keep it updated based on whatever event fires when you learn a new mount or pet, so we don't have to do a time-consuming scan of a large mount list every time you login.
Building more on what you just said, another approach could be to set some flags to pair UNIT_SPELLCAST_SENT with COMPANION_UPDATE, see if the COMPANION_UPDATE we just got matches the last UNIT_SPELLCAST_SENT, and infer from there that the player just cast a spell that summons a companion.
Good details on the rest of this stuff... I have no further comments on the other issues at this time.
v3.3.5.10 release progress on this ticket - releasing many new default SPEECHES from RPHelper2. - adds Gaining/Losing aggro
Lots more on the list here before we can close this one. :)
Unassigning tickets that are not actively being worked on
To post a comment, please login or register a new account.