Saturday, 13 April 2013

Update 14/03/13

Implemented the first batch of weapon and armour stats.

Attack animations are divided into swinging, thrusting or overhead attacks. Armour is divided into those categories too, so when an attack connects it check's the attack's type against all of the armour that belongs to that type (assuming the weapon itself is capable of damaging with that attack type - you can thrust with an axe or mace but it won't do any damage).

Armour is also divided into light, medium and heavy (and inorganic for skeletons). If a weapon penetrates that armour type then you do 1 wound of damage, otherwise the weapon only knocks them down and you have to hit them again to do damage. If a weapon is ineffective then it doesn't even knock them down and you have to find some other method of knocking them down to do damage.

Also equipment now has requirements for use. If you become encumbered you must walk everywhere. I still need to do a clumsy-attack animation when you aren't strong enough to use a weapon though. Equipment can also modify a whole bunch of other stuff, such as changing your attack speed, movement speed, hampering or disabling rolling and jumping, and stat changes.

All of this has visual cues in game so you don't need to know it to play. It's obvious when some piece of armour is slowing your movement, or an attack isn't doing damage to a target.

This all extends the modding system that the game has. It's easy for others to change or add new weapons and armour. Here's examples of the files that define the axe and plate body armour.

[item:AXE]
[name:axe:axes]
[icon:axe_icon]
[mesh:axe:box:0.2,1.2,0.1]
[statrequired:might:5]
[statrequired:vigor:3]
[weapon:lethal:1H_SWING:1H_SWING2]
[twohanded:2H:2H_SWING]
[armourpenetration:light]
[armourpenetration:inorganic]
[armourineffective:heavy]
[attacktype:swing]
[attacktype:overhead]
[hit:spark_small:clang.ogg]
[contact:0,-0.5,0]
[contact:0,0,0]
[contact:0,0.5,0]
[heldoffset:0,0.35,0]
[parry]
[attachable:weapon]

[equipment:PLATE_BODY]
[name:plate armour:plate armour]
[icon:armour_icon]
[mesh:packageditem:box:0.6,0.6,0.4]
[statrequired:might:3]
[statrequired:vigor:6]
[defensepool:swing]
[defensepool:overhead]
[defensepool:thrust]
[movementspeedmodifier:-15]
[hamperrolling:2]
[attackspeedmodifier:-10]
[equipped:Body:plate_body]
[hiddensubmeshes:body:armright:armleft]

No comments:

Post a Comment