Ah, true
Okay, GearSwap v0.813 is live now. There are several changes that will have to be made to user files, which I'll list in order of most-to-least likely to mess you up:
* buff_change(buff,g_or_l) - The second argument (g_or_l) is now a boolean. True means that you gained the buff and false means that you lost it.
* precast(spell,action), midcast(spell,action), etc. - The second argument to these functions contained only one piece of information and it was about the spell, so I've eliminated it and moved that piece of information over to spell.action_type. Anywhere that you had action.type before, now you should have spell.action_type
* midcast - Midcast now happens about 0.5 seconds sooner than it used to. If you use it for things like "if buffactive.sneak then send_command('wait 1.7;cancel 71') end" then you're going to have to change your wait duration.
* verify_equip and force_send - These functions are both deprecated and will spam you with annoying messages until you delete their calls from your user files.
I now realize that I actually haven't made most of these changes to my own example files, so I'll go through and do that momentarily.
New features/mechanics:
I have dropped little technical bits of this into the thread, but in summary GearSwap has moved to spoofing action packets (it creates the action packets, client does not) and some item use packets. By doing this, it is possible to make pretarget, precast, and midcast all occur near-simultaneously because I can control where the equip chunks show up relative to the action chunk. This means:
* You never need cast_delay to make sure gear swaps for precast. (this is why verify_equip() is deprecated)
* You will always get your midcast benefit even on actions that occur near-instantly.
* You can do things that are normally not possible due to client-side lock-outs, like: equipping Twilight Cloak in precast and immediately casting Impact, canceling Saber Dance and immediately using Waltz, canceling Sneak and immediately using Spectral Jig (but you still can aggro sound aggressive mobs), etc.
* The other improvements are minor enough that they aren't worth mentioning.
This required a rewrite of massive chunks of code, introduction of a spell-specific handler, and a few other mechanics tests. Lots of thanks goes out to Motenten, Thorny, Cair, and all the chaps that reported bugs.