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