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