In preparation for DFHack moving to the new DF version I have been going through my scripts/systems and the run_test script to make sure everything is working correctly and apparently my most recent git push broke a couple things, I have sensed fixed most of them, and added script tests for the previously missing scripts. I just need to add tests to the remaining untested systems and then I will do another push.
Also, I have started working on a couple new scripts and additions to previous scripts;
1. unit/attack - Currently this script creates an attack action with various user inputs. However this limits it to just working for basic attacks (i.e. an attack between two units right next to eachother). But what about creating an attack spell that you want to hit further away (e.g. Flame Whip)? So I am adding the ability to trigger the attack at range. Unfortunately there is nothing built-in to DF to handle this, so it involves a lot of DFHack chicanery, but I think I have a method that will work.
2. item/animate - This is a tricky one. I've always thought it would be cool if you could animate a certain item/object. However, to make this work correctly you would need to make a creature corresponding to each item/material combo, making it unrealistic. Instead I have created a "template" creature with 25 castes (note that the 25 is because I assumed you would never have more than 25 different item/material combos animated at the same time, if you think you will have more/less you can add/remove the extra castes). When you run the animate script it will find one of the castes that is not being used and modify the caste raws to mimic the item that is being animated. This involves changing names, materials, attacks (if applicable), etc... For those of you wondering why it has to be so complicated, when you change a castes raws you change all units tied to that caste, so you can't just use on creature/caste for all your animations.
3. tile/geomancy - This script will read the tile material at a specified location, and perform a specific command depending on that tiles material. I am still ironing out exactly how the user will specify what commands to trigger on what tile materials, but other than that it is a pretty straight forward script. (Thank to Milo Christianson's work on finding tile material with lua)
4, action-trigger - This will be an extension of the current modtools/item-trigger (with a couple non-item required extras). Currently item-trigger allows for triggering scripts on equipping/unequipping an item or striking with one. What this script will do is allow script triggering on any action (dodge, parry, block, attack, move, etc...), You will be able to specify that the effect occurs only when a certain item is equipped/used, only if a certain creature performs the action, only if a certain syndrome class is present on the unit, or some combination there of. Now you will be able to make a shield that, if blocked with, will send the attacker flying backwards.
I've also been working on adding more options to the Enhanced System, namely for buildings. Currently it allows for creating multi-story buildings, buildings with walls and roofs, outside/inside only (currently this feature is also available straight from DFHack), building only near water/magma, building only on specific materials, requiring both water and magma, and specifying certain criteria are met before building (e.g. >X population/kills/deaths/wealth/etc..., other buildings being built, other buildings not being built, and more). What I am adding to it is allowing buildings some more automation and features for the buildings themselves (e.g. buildings that trigger scripts every X ticks, buildings that provide/consume power, which is already possible with DFHack, buildings that trigger a script if a unit walks by, and more). Note, for those of you unfamiliar with my "Systems" all of this is achieved by reading in external files, which I have decided to create in the DF raw format, that the user provides. I will provide a couple of examples, but largely these are just systems (get it!) that a modder can use to provide extra features.
Also, I have decided to put my Expedition System on hold until I get a good grasp on what the new version of DF can do in terms of raids and such.