 		for i in [0...40]
 			tx = transaction(conn)
 			hp = game._hitAndGetHealth tx, 1, power
-			test.strictEqual shield().strength, 1000, "shield should not block anything if it's coverage is 0%"
+			test.strictEqual shield(tx).strength, 1000, "shield should not block anything if it's coverage is 0%"
 			tx.rollback.sync(tx)
 
 		# shield is not equipped

		for i in [0...5]
			tx = transaction(conn)
			hp = game._hitAndGetHealth tx, 1, power
			test.strictEqual shield().strength, 100, 'shield should receive no damage if not equipped'
			test.strictEqual greave().strength, 0, 'armor should receive all damage if shield is not equipped'
			tx.rollback.sync(tx)

		test.done()

		power = 70
		damages = null

		userHP = (tx) -> queryUtils.getFor(tx).val 'SELECT health FROM characters WHERE id=1'
		totalStr = (tx) -> queryUtils.getFor(tx).val 'SELECT SUM(strength) FROM items'

		performSomeAttacks = ->
			damages = {}
			tx = transaction(conn)
			for i in [0..20]
				prevHP = userHP(tx)
				prevSt = totalStr(tx)

				hp = game._hitAndGetHealth tx, 1, power
				dmg = prevHP - hp
				damages[dmg] = true

				if dmg is 0
					test.ok prevSt > totalStr(tx), 'should reduce armor strength if damage was blocked'
			tx.rollback.sync(tx)

		insert 'items_proto', id:1, name: 'breastplate', coverage:25
		insert 'items_proto', id:2, name: 'greave', coverage:25
