Add more combat events #18


  • Accepted
Open
  • rismisner created this issue Jun 22, 2009
    Owner

    Taken from comments on the wowace project page, the suggestion was to add support for more events, with several combat events listed:
    - being hit,
    - being critically hit,
    - dodging an attack,
    - resisting an attack,
    - landing a successful attack,
    - landing a critical attack

  • rismisner added the tags Accepted Enhancment Jun 22, 2009
  • rismisner self-assigned this issue Jun 22, 2009
  • rismisner posted a comment Sep 19, 2009

    3.2.0.06 adds combat event types:
    - (UNIT_SPELLCAST_CHANNEL_START) When I start channeling: ___
    - (UNIT_SPELLCAST_CHANNEL_STOP) When I stop channeling: ___
    - (UNIT_SPELLCAST_FAILED)        When I fail to cast: ___
    - (UNIT_SPELLCAST_INTERRUPTED)    When I am interrupted when casting: ___
    - (UNIT_SPELLCAST_STOP)            When I stop casting: ___
    - (UNIT_SPELLCAST_SUCCEEDED)    When I succeed at casting: ___

  • _ForgeUser3346498 posted a comment Oct 6, 2009

    I would second the entire list, and would add that it could be nice to see the ability to differentiate between physical and magical hits/crits, both in the ones you deal and the ones you take.

    Furthermore, I would add the following combat events to the list:

    • pet being hit,
    • pet being critically hit,
    • pet dodging an attack,
    • pet resisting an attack,
    • pet landing a successful attack,
    • pet landing a critical attack,
    • give a pet a command (such as attack, come, stay, aggressive, defensive, passive, or one of its spells)
    • pet casts one of its spells

    The ability to detect and respond to pets' actions could be a powerful tool for death knights, hunters, and warlocks, especially, although it would effect several other classes to a lesser degree.

    The idea here would be an attempt to expand SpeakinSpell's flexibility enough that the imagination of a roleplayer doesn't find itself blocked by a technical issue. The most important areas of such expansion will always be the ability to detect a greater number of events and the ability to output in more unique ways.

    After all, you never know when somebody's going to find an amazingly useful and awesome use for the combination of detecting the dying scream of a rabbit half a zone away with the ability to output in Trade lamenting the lack of Skinners on the server.


    Edited Oct 6, 2009
  • rismisner posted a comment Oct 10, 2009

    There are a few HUNDRED event notifications we could registry and turn into detected events.

    I find it pretty easy to add functions to wowevents.lua to make this happen, but my biggest concern is expanding the GUI to handle an increasing number of events and types of events.

    Recently I've been leaning towards a philosophy that I should just allow drop-down lists to get bigger and come up with some ideas for tree views or better organization of these big lists later when the lists are actually considerably bigger.

  • rismisner posted a comment Nov 22, 2009

    3.2.2.14 adds event type="COMBAT" Enter/Exit combat events are now type="COMBAT" instead of type="EVENT" This is intended to make room to add more events along these lines

  • rismisner posted a comment Nov 22, 2009

    After reviewing the list of all events from A-Z, it appears that all of these combat events will require more thorough parsing of COMBAT_LOG_EVENT_UNFILTERED.

  • rismisner posted a comment Nov 22, 2009

    3.2.2.14 adds a variety of combat events based on COMBAT_LOG_EVENT_UNFILTERED / SPELL_DAMAGE and SWING_DAMAGE events. This creates the end-user feature set to announce the following events:

    Combat Event: Yellow Damage (<damagetype>)

    Combat Event: White Damage (<damagetype>)

    • This is a group of events, Signalled when you score white or yellow damage with any spell, ability, or auto-attack
    • Technically based on the Blizzard API event: COMBAT_LOG_EVENT_UNFILTERED, with eventtype="SPELL_DAMAGE" (yellow hits) or "SWING_DAMAGE" (white hits)
    • <damagetype> is a string composed of all of the following that apply (in this order):
    • Crushing, Critical, Resisted, Blocked, Absorbed, Glancing, Killing Blow
    • If none of those apply, then it will be a simple "Hit"
    • example event name: "Combat Event: Yellow Damage (Critical, Killing Blow)" but many other permutations are also possible
    • In addition to all standard substitutions, the following substitution values may also be used for these events:
    • <damage> is the amount of damage dealt
    • <school> is physical, arcane, fire, etc.
    • <damagetype> has a substitution value that matches the <damagetype> in the event name
    • <overkill> is a number >= 0 (<damagetype> will include "Killing Blow" only if overkill>0)
    • <name> and <eventname> have the value "Yellow Damage (<damagetype>)"
    • likewise, <displayname> is "Combat Event: Yellow Damage (<damagetype>)"
    • however, <spellname> and <spelllink> will specify the spell or ability that was used to deal this damage
    • all other standard substitutions apply as usual

    The following additional combat events remain to-do from this ticket:

    • being hit,
    • being critically hit,
    • dodging an attack,
    • resisting an attack,
    • All the pet events listed below
  • rismisner posted a comment Nov 28, 2009

    3.2.2.15 adds events for receiving damage from players, which includes detection of the damage type. It's the same SPELL_DAMAGE / SWING_DAMAGE event APIs as I added in 14, but added support for <caster> is someone else, and <player> is the <target>. This covers the following

    • being hit,
    • being critically hit,
    • dodging an attack,
    • resisting an attack,

    Those SPELL_DAMAGE and SWING_DAMAGE events are only triggered by player actions, so they only work in PvP. Some other combat event must be handled to detect mob actions against you.

    Which just leaves the following left undone from the OP:

    • All the pet events listed below, which is duplicated as ticket 84

    There are some additional combat events we should add:

    • Stuff done by someone else to someone else, not directly involving you - ex. "Nice crit, <caster>, woot!" - or better yet "get out of the fire!"
    • heals received - "thanks, hehe that tickles"
  • rismisner posted a comment Dec 17, 2009

    add a simplified killing blow event for any killing blow

  • _ForgeUser228323 posted a comment Aug 27, 2010

    Added gaining/losing aggro events. My computer's borked again so I can't test, though, so please test it someone!

  • rismisner removed their assignment Jan 16, 2013
  • rismisner assigned issue to _ForgeUser228323 Jan 16, 2013
  • rismisner posted a comment Jan 16, 2013

    I'm re-assigning all my tickets to Duerma

  • rismisner posted a comment May 7, 2015

    Unassigning tickets that are not actively being worked on

  • rismisner unassigned issue from _ForgeUser228323 May 7, 2015

To post a comment, please login or register a new account.