Got a bit sidetracked, so Weapon Modifiers aren't in yet as I still need to figure out how to handle Osiris/Horus script workflows.
However, I have drastically cleaned up the code and this tool is now 100% extendable. What this means is you can now inject your own behavior into the Skill Generator. For example, if you want to create a modifier that will cause any skill with the field 'elemental' to generate duplicate skills but one for each element, now you can!
Once I figure out a good workflow for Modifiers to inject custom Osiris and Horus scripts, the ability of this thing will be scary.
I'm pretty stoked about this.
I just finished my first "real" modifier for it. I call it "Associate" and here is how it works:
const { SHOUT_NAMES } = require('../lib/definitions/skillFields');
const { STATUS_CONSUME_NAMES } = require('../lib/definitions/statusFields');
const { POTION_NAMES, WEAPON_NAMES } = require('../lib/definitions/statFields');
const { DAMAGE_TYPE } = require('../lib/definitions/enums');
const skills = [
{
[SHOUT_NAMES.NAME]: 'FrostCoating',
[SHOUT_NAMES.USING]: 'VenomCoating',
'associate': {
turns: 2,
chance: 100,
Status_CONSUME: {
[STATUS_CONSUME_NAMES.NAME]: 'FROST_COATING',
[STATUS_CONSUME_NAMES.USING]: 'VENOM_COATING',
},
Potion: {
[POTION_NAMES.NAME]: 'Stats_FrostCoating',
[POTION_NAMES.USING]: 'Stats_VenomCoating',
},
Weapon: {
[WEAPON_NAMES.NAME]: 'Status_FrostCoating',
[WEAPON_NAMES.USING]: 'Status_VenomCoating',
[WEAPON_NAMES.DAMAGE_TYPE]: DAMAGE_TYPE.WATER,
},
},
}
];
module.exports = skills;
The above, when built, will generate 4 skills. A shout, a status, a potion, and a weapon. It will automatically connect them all (skill gives status, status has potion id, and potion has boost weapon).
This is just an example of what this tool is capable of. The above is a very simple, minor example. I'll have more fun ones to show off once I figure out scripting support.