1.4.7436
mid sep - Macro prototype
New Alternative to Auras / Behavior Trees - Macroses (early-early alpha)
Right now, there are 3 methods of building custom logic:
1) Auras
Initially there were only auras, which consist of Triggers and Actions. Idea is simple - when some trigger activates, your actions are started.
This is still good for simple event-action situations like sending notifications to telegram or building automatic HP/MP potions. But for anything more complex such approach quickly becomes way hard to maintain, because you have to think about ALL possible events and reactions which may happen simultaneously.
2) C# scripts
To solve that problem I've added scripts, which give you 100% control over your bot and what it does. The only real problem here is that it requires a user to know C# and be able to code. Also, for some cases, writing the code is not the best solution, e.g. developing bot that does rotations in plain C# may be quite complex as you have to track cooldowns, assess priorities, etc. We needed some better tools for such cases.
3) Behavior Trees
BTs are another view onto modeling logic which has proven itself in game engines where they are used to model NPCs logic and everything. Also it solves the problem of having multiple events happening at the same time be running EVERY action in a sequential manner, i.e. it allows users to build priorities of actions which must be executed under any given set of conditions. For some cases this is just a perfect solution, e.g. building rotation logic using BTs is the best experience you can get nowadays. The only real problem with BTs is that they have quite steep learning curve, which, when multiplied on EA learning curve, made then unaccessible to a lot of users, especially non-programmers. Such users were left with a single option, which is using Auras with all their built-in problems.
Solution - Macroses
Welcome the new 4th option, which intends to become a new default starting point of your automations. The idea is simple - you have a bunch of commands running one after another. Those commands can check states of other auras, press buttons, run scripts, etc. They also allow you have cycles, conditions and everything you would expect.
Macroses are not reactive by default, i.e. they will never run by themselves, in contrast to Auras, which always do something. To run a macro you have to either bind it to a hotkey or configure some other Enabling Condition. When condition is met - macro will run either once, or will run periodically.
And the real power of such approach hides in the fact that you can combine ALL three logic-building methods this way - you can have auras tracking images/colors/doing neural network inference, check state of those auras via IfThenElse, if met - pass control to BehaviorTree or run some script.
For example, you want your character to farm mobs on the spot, if it died - you resurrect, restock resources in a town and go back to the spot. If you'll try to build that whole logic using BT, there will be some complexities involved, e.g. you'll have to always track whether you're on a farming spot or in a town. But with macroses you can have one large cycle, which will be running if bot is activated. In scope of that cycle you can easily check whether you're in a town - and then do restock, or, if you're on a farming spot, macro can start running farming behavior tree. In that case you won't have to worry about ALWAYS describing all possible conditions and can easily break your bot's logic in parts.
You can use macroses to just send sequences of keypresses

or build full-blown rebuff/target/farm logic using conditions, cycles and scripts

In contrast to BTs, this tool is quite simple and easy to understand - you basically build a program using small blocks. I think that will allow new users to build their automations in an easier way.
New node - Mouse Move
This node is available in both Macroses and Behavior Trees and is currently a very rough prototype of how it will look like. It will get some love in the nearest weeks.
There are two nodes, one for absolute mouse movement, one for relative (takes into consideration current position of the cursor).
Bugfixes/Improvements
- [UI] Fixed problem with login - username was case-sensitive
- [BehaviorTrees] Fixed a problem with BTs ticking once when enabling conditions are met even if program window is active
- [BehaviorTrees] Fixed a problem with BTs - they were not respecting Enabling Conditions of a folder in which they reside
- [UI] A lot of changes in Import/Export code - may break something, but now EA can have as many different item types (behavior trees, auras, macroses, folders, etc) as needed
- [Capture] Fixed a problem with FPS showing incorrect values sometimes
- [TetherScript] Added support for true relative mouse movement. Previous version of the driver was not supporting real mouse movement and quieried cursor position, which did not work at all for some cases, e.g. when a game "snaps" cursor positions at the center of the screen.
- [Scripting] Fixed a problem with code rewriters not handling some combinations of method calls.