Is it in any way possible to add this building and it's reactions without generating a new world?
As you have to add the reactions to entity_default.txt it will need a new world.
Well, this is the single coolest thing I've seen in a while on DF. You're awesome, words fail, etc etc.
Can it train dodge?
Also how about something like, I dunno, a "pupil's desk" to train the student skill?
I added a few more skills. Seems to work fine so far.
What to change:
Create building_training.txt, paste this into the file and save it:
building_training
[OBJECT:BUILDING]
[BUILDING_WORKSHOP:TRAINING_DUMMY]
[NAME:Training Dummy]
[NAME_COLOR:7:0:1]
[WORK_LOCATION:1:2]
[DIM:1:2]
[BUILD_LABOR:CARPENTER]
[BUILD_KEY:CUSTOM_SHIFT_D]
[BLOCK:1:1]
[BLOCK:2:0]
[TILE:0:1:'_']
[TILE:0:2:' ']
[COLOR:0:1:6:0:0]
[COLOR:0:2:6:0:0]
[TILE:1:1:'_']
[TILE:1:2:' ']
[COLOR:1:1:6:0:0]
[COLOR:1:2:6:0:0]
[TILE:2:1:'_']
[TILE:2:2:' ']
[COLOR:2:1:6:0:0]
[COLOR:2:2:6:0:0]
[TILE:3:1:241]
[TILE:3:2:'_']
[COLOR:3:1:6:0:0]
[COLOR:3:2:6:0:0]
[BUILD_ITEM:1:WOOD:NONE:NONE:NONE][CAN_USE_ARTIFACT]
[BUILD_ITEM:1:BUCKET:NONE:NONE:NONE][EMPTY]
Create reaction_training.txt, paste the following and save:
reaction_training
[OBJECT:REACTION]
[REACTION:TRAIN_SWORD]
[NAME:train with sword]
[BUILDING:TRAINING_DUMMY:CUSTOM_S]
[REAGENT:A:SWORD:NONE:NONE:NONE:NONE][PRESERVE_REAGENT]
[SKILL:SWORD]
[REACTION:TRAIN_SPEAR]
[NAME:train with spear]
[BUILDING:TRAINING_DUMMY:CUSTOM_SHIFT_S]
[REAGENT:A:SPEAR:NONE:NONE:NONE:NONE][PRESERVE_REAGENT]
[SKILL:SPEAR]
[REACTION:TRAIN_AXE]
[NAME:train with axe]
[BUILDING:TRAINING_DUMMY:CUSTOM_A]
[REAGENT:A:AXE:NONE:NONE:NONE:NONE][PRESERVE_REAGENT]
[SKILL:AXE]
[REACTION:TRAIN_HAMMER]
[NAME:train with hammer]
[BUILDING:TRAINING_DUMMY:CUSTOM_H]
[REAGENT:A:HAMMER:NONE:NONE:NONE:NONE][PRESERVE_REAGENT]
[SKILL:HAMMER]
[REACTION:TRAIN_MACE]
[NAME:train with mace]
[BUILDING:TRAINING_DUMMY:CUSTOM_M]
[REAGENT:A:MACE:NONE:NONE:NONE:NONE][PRESERVE_REAGENT]
[SKILL:MACE]
[REACTION:TRAIN_SHIELD]
[NAME:train with shield]
[BUILDING:TRAINING_DUMMY:CUSTOM_I]
[REAGENT:A:SHIELD:NONE:NONE:NONE:NONE][PRESERVE_REAGENT]
[SKILL:SHIELD]
[REACTION:TRAIN_ARMOR]
[NAME:train armor]
[BUILDING:TRAINING_DUMMY:CUSTOM_R]
[REAGENT:A:ARMOR:NONE:NONE:NONE:NONE][PRESERVE_REAGENT]
[SKILL:ARMOR]
[REACTION:TRAIN_DODGE]
[NAME:train dodging]
[BUILDING:TRAINING_DUMMY:CUSTOM_D]
[REAGENT:A:SHIELD:NONE:NONE:NONE:NONE][PRESERVE_REAGENT]
[SKILL:DODGING]
[REACTION:TRAIN_FIGHT]
[NAME:train fighting]
[BUILDING:TRAINING_DUMMY:CUSTOM_F]
[REAGENT:A:SHIELD:NONE:NONE:NONE:NONE][PRESERVE_REAGENT]
[SKILL:MELEE_COMBAT]
[REACTION:TRAIN_CROSSBOW]
[NAME:train crossbow]
[BUILDING:TRAINING_DUMMY:CUSTOM_C]
[REAGENT:A:CROSSBOW:NONE:NONE:NONE:NONE][PRESERVE_REAGENT]
[SKILL:CROSSBOW]
Add this to the dwarf section of entity_default.txt:
[PERMITTED_BUILDING:TRAINING_DUMMY]
[PERMITTED_REACTION:TRAIN_SWORD]
[PERMITTED_REACTION:TRAIN_SPEAR]
[PERMITTED_REACTION:TRAIN_MACE]
[PERMITTED_REACTION:TRAIN_AXE]
[PERMITTED_REACTION:TRAIN_HAMMER]
[PERMITTED_REACTION:TRAIN_SHIELD]
[PERMITTED_REACTION:TRAIN_ARMOR]
[PERMITTED_REACTION:TRAIN_DODGE]
[PERMITTED_REACTION:TRAIN_FIGHT]
[PERMITTED_REACTION:TRAIN_CROSSBOW]
Then select a (civilian) dwarf for the building with 'q','P' (requiring a manager) and let them train away. Seems to be a nice solution until military training bugs are fixed.