 			mode: (moves[i].match(/[a-z]$/i)?[0] || '').toLowerCase()
 		} for move, i in moves
 		movement.values = (move.value for move in moves)
+		movement.modes = (move.mode for move in moves)
 		(movement[move.mode] = move.value) for move in moves
 		movement.base = movement.values[0]
 		movement.units = if ~mv.value.indexOf '"' then 'inches' else 'hexes'

		finalPV = if isNaN(finalPV) then '?' else finalPV
		pv.value = finalPV

	offensiveSpecialAbilityFactors = {
		ARTAIS: (rating) -> 3 * 4 * rating
		ARTAC: (rating) -> 3 * 4 * rating
		ARTT: (rating) -> 2 * 4 * rating




	# TODO: calculate possible roles
	# TODO: allow manual override, no PV calculations

