Table of Contents

Method AHeldBlockChargesTheShieldAndSparesTheArmour

Namespace
GrindFest
Assembly
GrindFest.dll

AHeldBlockChargesTheShieldAndSparesTheArmour()

A held block, actually verified: the blow is stopped, the shield pays for what it stopped, the attacker's weapon still pays the whole blow, and the armour is spared because nothing got through it.

public IEnumerator AHeldBlockChargesTheShieldAndSparesTheArmour()

Returns

IEnumerator

Remarks

Nothing asserted this until 2026-09-23. MeasureHeldBlock only requires MonsterBlocks > 0, and the passive roll satisfies that on its own (CombatBehaviour sets IsBlocked there too), so the active BlockSkill path could stop working entirely and the suite would stay green. The AI side asserted nothing either: HeroVsSkeleton.Warrior prints its MBlocks (44 of 90 blows, DmgIn:0) but only reports WON/DIED.

The stance is started directly instead of waited for, because AIBehaviour.ShouldBlock is REACTIVE: it blocks only while the enemy is currently using a skill (IsEnemyAttackThreatening returns false the moment IsUsingSkill does) and drops the stance the moment that ends. Against a fast Lv1 weapon the window rarely lines up, which is why StickVsHeldBlock measures ~0 held blocks and mostly the passive roll - the question "does the AI start one" is a different one, and reported there.