Am I the only one who noticed the distinct lack of detail in the weapon systems? I mean spear, swords and axes are basically just differing sized lumps of metal with related attacks. I figure weapons, like creatures, should be at least composed of smaller parts, with each part able to perform its own functions, and together act like a weapon.
Component raws.
So just as creatures are made from body parts, and we have separate raws for body parts, we would need separate raws for weapon components. These raws would include its size, attacks, and what the part could be made of. For example
[COMPONENT:POMMEL]
[SIZE:20]
[WOOD][METAL]
[ATTACK:BLUNT: MISC_WEAPON:100:1000:strike:strikes:pommel:1000]
Size is self explanatory, it’s how big the piece is. The next line shows that this can be made of wood or metal, required tags for this would be [WOOD] [METAL] [STONE] [LEATHER] [ROPE] [CLOTH] [THREAD] and any others you or Toady think are needed. The next line is the standard attack tag, but with one argument added, that is MISC_WEAPON. This extra argument shows the skill related to this attack. This means a weapon will have multiple skills attached to it, making selected attacks in adventure mode all the better.
Sockets and plugs.
Because certain components can only attach to certain other components, we need a system to control how a weapon is built. The solution is that each weapon has a number of sockets and plugs that go together, so that you can put a blade at the end of a pommel, but not a bow string. An example of this in the raws.
[COMPONENT:POMMEL]
[SIZE:20]
[WOOD][METAL]
[SOCKET:BLADE]
[ATTACK:BLUNT: MISC_WEAPON:100:1000:strike:strikes:pommel:1000]
[COMPONENT:BLADE]
[SIZE:80]
[METAL]
[PLUG:BLADE]
[ATTACK:EDGE:SWORD:20000:4000:slash:slashes:NO_SUB:1250]
The BLADE argument here tells what sort of socket/plug were using. Another example would be [STRING] for bows and cross bows. It would, of course, be possible to let a component have both a plug and a socket, so for example a chain in a flail would require both [SOCKET:BLADE] and PLUG:BLADE] allowing for it to be put in between the pommel and whatever you wanted to attack with.
Other tags.
Apart from this basic structure, we need a few other tags to tell how the weapon behaves. A [GRIP] tag would allow for this component to be held, and a [FLEXIABLE] tag would be used on chains and whips to change how the weapon is used.
Weapons.
Now that we have out components, we need raws to put them together into weapons. This is done by declaring it’s components and how they relate, such as
[ITEM_WEAPON:ITEM_WEAPON_SWORD_SHORT]
[NAME:short sword:short swords]
[ATTACH: BLADE: POMMEL]
[ITEM_WEAPON:ITEM_WEAPON_MACE]
[NAME:mace: maces]
[ATTACH: SPIKE_BALL: POMMEL]
[ITEM_WEAPON:ITEM_WEAPON_FLAIL]
[NAME:flail: flails]
[ATTACH: CHAIN: POMMEL]
[ATTACH: SPIKE_BALL: CHAIN]
The new tag here is ATTACH, and it makes a relationship between one thing and another. For simplicity sake we could say that the plug always goes before the socket, I’m sure toady could make it polymorphic, but why bother? Entity’s would make and name weapons in the recipe defined in the weapon raws, in accordance to what their own raws allow.
Handling weapons in fortress mode.
Just telling your weapon smith to “Make a axe” would obviously be a little harder now. Instead you would need to tell him to “Make an axe blade” and have your wood crafter “Make a short handle”. Then have them put together, probably at a craftdwarf workshop. This would take a little longer, but it would be more realistic, so deal with it.
Adventure mode custom weapons.
So you’re in adventure mode, and you’re using a spear with a steel tip and pine shaft. You come across a new spear with a bronze tip, but a really nice mahogany shaft. What one to use? Simple solution, take both apart, then go into your adventure mode reactions, go to “Make new weapon”, select “New spear” and then use the components you just got to make a awesome new spear.
Handling [FLEXIABLE]
This is an interesting tag to handle the logic of. I’m thinking the best way would be that any component with [FLEXIABLE] on it would separate the mass of the weapon, without separating the speed. So for example, in a mace collision, the mass of the handle is counted towards the impact, but in a flail only the chain and head count. It would also allow for much faster acceleration, because the same force is being put into less mass, so the head of a flail would be going faster than the head of a mace. This means that for whips, you would get deadly fast speed with little follow through (Like in real life) and for weapons with a lot of mass, such as flails, there would still be follow through, but at a higher speed.
Any questions?