Yeah, but small things like that could be easily made data-driven. One day I was dreaming of full data-driven game object system (no inheritance and no switch-cases, just data) but that might not be possible unless everything is super generic.
Well. If I add all special AI behavior into single AI method with lots of ifs... It will be really hard to maintain
It's not that I think that code driven monsters and items are superior to data driven.
After all wq is my first attempt to make a roguelike.
This method definitely works, and provides more than enough flexibility.
But adding new monsters, or making some global rebalancing is indeed cumbersome.
Most likely in my next rl I'll try to implement what your are talking about - fully data driven game.
But IMO that will require much more careful planing, and some complex tools, to work with data.
I don't want to start any new projects before I finish todo list of wq.
But after this I'll be glad to discuss data driven roguelike, if you are interested