Project-Epoch / TrinityCore

TrinityCore Open Source MMO Framework (master = 8.3.7.35662, 3.3.5 = 3.3.5a.12340)
http://www.trinitycore.org
GNU General Public License v2.0
4 stars 7 forks source link

implement Spell Queue System #66

Closed sogladev closed 4 weeks ago

sogladev commented 1 month ago

Changes proposed:

Uses similar flow logic as TC master and Cata preservation, with some structural differences.

One key difference is that the 335a client does not send CMSG_CAST_SPELL packets while on GCD, making queueing spells during casts that last the duration of GCD not possible (like instant cast corruption). Only spells queued during the end of a current spell cast (<400ms) will be queued. CMSG_USE_ITEM are sent when on GCD, so items can be queued during GCD e.g., casting a 1.5s spell and queuing a potion is possible

Target branch(es): 335/6x

Issues addressed: Fixes #50

Tests performed: (Does it build, tested in-game, etc) warlock 80 at a target dummy, trained spells, engi gloves, trinket, potion of speed

testing with a longer time window might be useful SPELL_QUEUE_TIME_WINDOW = 400 to 1000/2000/...

tswow 78f99d423ae9

Known issues and TODO list:

kaytotes commented 1 month ago

I will build and test this tomorrow. Feel free to reach out to me on Discord as per https://github.com/Project-Epoch/TrinityCore/issues/51

kaytotes commented 4 weeks ago

Tested. Works perfectly. Please do reach out for bounty awarding.