DECA

instructions

Instructions

DECA is a Decision-Automat. You can create a sequence that consist of multiple actions in a specific order. Whenever the sequence is called it will select the first action that completes all its checks.

All configuration is done in game via a dialog window. To open the main window type /deca in your chat.

At the top of the dialog you find an editbox with a new button and a combobox with a new button. These elements are used to create new sequences(the editbox) and new actions for a selected sequence(the combobox).

Below those two you find two listboxes side to side. The left one contains all created sequences and allows you to select a sequence by clicking on its name.

The right one shows all actions from the selected sequence. You can select an action by clicking on its name. The buttons up and down change the order of actions. The higher up the action is the more important it is. An action that should be performed whenever it is ready would stand at the top and an action that should be performed if nothing else is ready stands at the bottom of the listbox.

Both listboxes mark the selected entry with a red background.

When you select an action the listbox below those two shows all avaiable checks. The checks are valid for the selected action in the selected sequence. If you have two sequences with the same action the checks of those actions can be completely different. Initially all checks are disabled and you can enabled a check by clicking the checkbox behind it. Specific information about a check is gained by hovering your mouse over the checks name. If a check allows or requires parameters an editbox appears behind the check if you enable it. The syntax for the parameters is included in the tooltip for the check. Inputs in the parameters editbox are saved by pressing enter and discarded by pressing escape. Unsaved changes are marked with a red border.

At the bottom are two buttons that allow you to delete the selected sequence or action.

Now lets make a first sequence with actions and checks.

First Sequence

Open the dialog with the "/deca" command. Now enter a sequence name in the top editbox. Sequence names must be unique, you can not create two sequences with the same name. We will call our first sequence "test". After we entered the name we click the "new" button behind the editbox and see that a new entry was added to the sequence listbox. To add actions we first select the sequence by clicking its name in the listbox. Then we select an action from the dropdownbox and click "new" behind the dropdownbox. We see that the action was added to the actions listbox. We select the action by clicking its name in the listbox. Now the available checks are shown. Common checks for an action are isTargetValid and isAbilityEnabled. If these checks fail you cannot execute the action anyway(but they aren't always necessary, an action that can be executed without a target needs no target check). So we want to add both checks to the action. We do that by searching the check listbox for the correct entrys and checking the checkbox behind their names. None of the checks requires parameters so we are done. When we close the dialog window a button will appear in the middle of the screen. We can move or hide it with the layout editor(all buttons are created in one place so you have to move them to see all buttons). If we click the button the sequence test is executed and it will check if the action can be executed. If so it will else nothing happens. If you have created a offensive action find a target and get into range then click the button. If you have created a neutral or defensive action target your self and click the button. The action will be performed. To distinguish the buttons if you have multiple sequences(each sequences generates a button) you can drag drop any icon on the button. Items, Macros, Abilitys, whatever you want. The icon will be saved along with your sequence.

Addons save their settings if you use the command "/reloadUI" or by terminating the game correctly, if a client crash occurs all unsaved settings are lost!

Virtual cooldowns

The latest patch denies buff information about enemy playeers thats why I added virtual cooldowns to DECA. The typical use for this is a dot that ticks for x seconds and has a cooldown of y seconds where x > y. If you put the action in a sequence it will be cast whenever the cooldown finishes and not when the dot is finished. Usually you dont want that. So you can define a virtual cooldown and set it to the value of x. Now you wont be able to cast the ability(via a sequence a normal activation is of course possible) on the same target until x seconds have passed. You can select another target and cast the dot instantly, since virtual cooldowns are target sensitive.

What it does is it stores the ability, the target id and the custom cooldown. If an ability gets disrupted, parried or blocked the virtual cooldown will be canceled and only the normal cooldown applies.

You don't have to configure virtual cooldowns for abilitys that have a higher cooldown than debuff time. For all skills that buff friendly targets(hots, Kiss of Death, etc.) you can use the check isBuffNotOnFriendlyTarget. You don't have to setup virtual cooldowns for those either.

Pitfalls:

It is currently not possible to track aoe debuffs in a precise way, so casting acid bomb on target a and b will lock the ability on only the guy you targeted while casting.

You cant get information about a cured hex. Let's say you cast a dot on your target and he gets cured. Then the sequence will recast that dot only after the virtual cooldown has expired not instantly.

Facts

Date created
08 Feb 2009
Last updated
08 Feb 2009

Author