My RC file has a lua macro that automatically selects and casts an appropriate direct damage spell.
It is currently capable of choosing between starburst, foxfire, stone arrow, bombard, scorch, airstrike, shock, flame wave, irradiate, fireball, ignition, firestorm, IOOD, LCS, and LRD.
It is designed to select the spell and the targeting point to deal maximum damage to the enemies that deserve it most - those that are high threat or low on health are priority targeted.
There are three ways to invoke it. There is the âcastâ function, and the âcast_efficientâ function. The difference is that âcast_efficientâ takes into account the MP cost of the spell, unless threatening enemies are nearby. âcastâ just deals the most damage possible (roughly speaking) without regard for MP. There is also the âcast_quietâ function that is like âcast_efficientâ but avoids the loudest spells (LRD, fireball, ignition, firestorm) which you might want in certain situations, e.g. youâve been shafted. I have bound âcastâ and âcast_efficientâ to keys 3 and 4, as follows:
macros += M 4 ===cast
macros += M 3 ===cast_efficient
So that, in combat, I mostly just press 3 repeatedly to cast various spells until things die. If I feel that cast_efficient isnât getting the job done, I press 4 instead. If the situation is getting too dangerous (or I want to use a spell that âcastâ doesnât handle) then I will switch to manually selecting spells.
Feel free to give it a try. The rcfile can be found here: https://cbro.berotato.org/rcfiles/crawl-git/Berder.rc
Many updates since I first posted. It works somewhat differently now, especially with the key bindings. See below.
New complete spell list: orb of destruction, starburst, foxfire, stone arrow, bombard, scorch, airstrike, shock, flame wave, irradiate, lehudibâs crystal spear, iskenderunâs mystic blast, fireball , ignition, fire storm, leeâs rapid deconstruction, arcjolt, plasma beam
Also Iâve changed how it decides which key autocasts which spells. Now there is a string at the top, local castmacros = â~zb,~zc,abcdefghijk,ABCDEFGHIJKâ
These are comma separated fields. It means that if you press 1, it is just the macro âzbâ (casting the spell bound to b). If you press 2 it is the macro âzcâ. If you press 3 it autocasts any supported spell bound to abcdefghijk. If you press 4 it autocasts any supported spell bound to ABCDEFGHIJK. A reasonable way to use it would be to put lower-level spells on abcdefghijk, and higher level spells on ABCDEFGHIJK.
You can change castmacros without having to quit and edit your rcfile, by setting a different string as an inscription on your weapon. (Donât inscribe your weapon with anything else while youâre using my autocaster).