I’ve started and am about 25% of the way through a complete rewrite of the mod from the Ground Up. There are a number of bugs that I cant bandaid and need to totally change the imoplementaiton to fix. There is also a lot of code duplication and multiple implementations of the same thing that as I have been working on this have learnt about what not to do.
A lot of the old design decisions were built around a mod for a niche of players who understood Lua. Things like the ingame editor have broadened the reach of the mod to a less technical group. The bundled DraikMacros also didnt play out as I had expected. There are also the features that people have asked for that just cannot be achieved with the current design limitations.
In 2.0 DraikMacros wont exist as a seperate mod. Instead there will be sample macros for each class that when you login with a class and you have no macros you will get a one time prompt asking if you want to load in the sample macros for that class. After this point these macros will play like any other macro. If you delete it it will disappear. If you want it back there will be an option to reload the sample macros. HAve it create the entry in /macros when you drag the icon to an action bar.
You will be able to configure multiple versions of a macro for different conditions. Want a default version that is super lazy great but in a Raid I want to turn off the cooldowns and trigger them manually. I also want to use trinkets in one but not the other. I may want different step functions and i want it to auto configure as I change between zones without tieing up multiple macro slots.
Plugin Authors have wanted to be able to advise when they have updated a macro or ship a macro as present but disabled. There is a complete API that plugin authors will be able to use to achieve these results. Yes this will still support plugins but it will require some Lua knowledge to implement the API. There will be documentation on this.
Even in the current macro spec, some of the terms do not reflect what they are currently doing. Change the helpTxt line to Help, split off talents and Honor Talents into their own fields. When changing zones in the grace period check that talents dont match and prompt the user to either apply the macro talents or not. Fix the spec for Internal loop so that you can easily see the pre and postmacro steps. Handle custom step funcitons better. I may have figured out a way to reset a macro in combat based on target change.
All this stuff is not achievable with the current codebase.
While this is still super early days here is a sample of what a macro could look liek in 2.0:
Sequences['Ret'] = {
author="TimothyLuke",
specID=70,
icon='INV_MISC_QUESTIONMARK',
lang="enUS",
talents="1112111",
helplink="https://wowlazymacros.com/forums/topic/tls-ret-macro/"
default=1,
raid=2,
pvp=3,
mythic=4,
MacroVersions = {
[1] = {
StepFunction = "Priority",
SoundErrorPrevention=true,
Trinket1=true;
Trinket2=true;
KeyPress=[[
/targetenemy [noharm][dead]
/cast Avenging Wrath
/cast Shield of Vengeance
]],
"/cast [talent:5/1] Justicar's Vengeance; [talent:5/2]Eye for an Eye",
"/cast Templar's Verdict",
"/cast Judgment",
"/cast Blade of Justice",
"/cast Wake of Ashes",
"/cast Crusader Strike",
KeyRelease=[[
]],
},
[2] = {
StepFunction = "Priority",
reset="target,combat",
KeyPress=[[
/targetenemy [noharm][dead]
]],
"/cast [talent:5/1] Justicar's Vengeance; [talent:5/2]Eye for an Eye",
"/cast Templar's Verdict",
"/cast Judgment",
"/cast Blade of Justice",
"/cast Crusader Strike",
},
[3] = {
StepFunction = "Priority",
reset="target",
Head=true;
KeyPress=[[
/targetenemy [noharm][dead]
/cast Avenging Wrath
/cast Shield of Vengeance
]],
"/cast [talent:5/1] Justicar's Vengeance; [talent:5/2]Eye for an Eye",
"/cast Templar's Verdict",
"/cast Judgment",
"/cast Blade of Justice",
"/cast Wake of Ashes",
"/cast Crusader Strike",
KeyRelease=[[
/cast Hand of Hindrance
]],
},
[4] = {
StepFunction = "Sequential",
LoopLimit=5,
Trinket1=true,
Ring1=true,
KeyPress=[[
/targetenemy [noharm][dead]
]],
PreMacro=[[
/cast Avenging Wrath
/cast [talent:5/2]Eye for an Eye
]],
"/cast [talent:5/1] Justicar's Vengeance",
"/cast Templar's Verdict",
"/cast Judgment",
"/cast Blade of Justice",
"/cast Wake of Ashes",
"/cast Crusader Strike",
PostMacro=[[
/cast Shield of Vengeance
]],
KeyRelease=[[
]],
},
}
}
This is weeks out. At the moment I an working on the API side first and will then make things work. Some of the API stuff is forming over at https://timothyluke.github.io/GnomeSequencer-Enhanced/docs/
Things will change based on the feedback I get. It may be a shock but I make changes based on the things people tell me. I release alpha and beta version, 800 odd people download these builds but almost no one tells me about issues till after its released.
On a side note as this has significantly departed from its GS roots it probably needs a new name. Thoughts, Suggestions?