While a zed is blocking, the CanDoSpecialmove test in ProcessSpecialMoveAfflictions of KFAfflictionManager.uc never passes, stopping most afflictions powers from being applied at all.
This means the AdjustAffliction function in KFPawn_Monster.uc is never even run to apply the 0.2* AfflictionModifier for most zed blocking with these affliction types.
An additional issue is that the shot that triggers a block does not get it's damage adjusted but does get it's affliction power tested/adjusted.
When a shot lands that triggers a block, the order of events is:
AdjustDamage called from TakeDamage of Pawn.uc
MyKFPawn.DoSpecialMove with SM_Block called from NotifyTakeHit in KFAIController.uc
AfflictionHandler.NotifyTakeHit called from TakeDamage of KFPawn.uc
This means the damage is calculated before the block, but the affliction is calculated after the block.
These issues are particularly noticeable when attacking scrakes, as a single shot often does enough damage to enrage, triggers a block, doesn't apply any affliction, then the scrake enrages instantly cancelling the block anyway.
I reproduced these issues by creating a custom weapon with enough damage to trigger blocks (61 on 1p scrake) and a custom damage type that does 15000 or so freeze power.
I then used this weapon on scrakes (spawning a new one each shot) until a block was triggered.
When the block chance triggered, the scrake could not be frozen (even two consecutive shots of 61 damage and 15000 freeze power would not freeze if the first triggers a block. The second shot enrages the scrake which cancels the block and allows the 3rd shot to freeze instead).
The same occurred when testing with a bloat, so the issue is not unique to scrakes.
This means the AdjustAffliction function in KFPawn_Monster.uc is never even run to apply the 0.2* AfflictionModifier for most zed blocking with these affliction types.
An additional issue is that the shot that triggers a block does not get it's damage adjusted but does get it's affliction power tested/adjusted.
When a shot lands that triggers a block, the order of events is:
AdjustDamage called from TakeDamage of Pawn.uc
MyKFPawn.DoSpecialMove with SM_Block called from NotifyTakeHit in KFAIController.uc
AfflictionHandler.NotifyTakeHit called from TakeDamage of KFPawn.uc
This means the damage is calculated before the block, but the affliction is calculated after the block.
These issues are particularly noticeable when attacking scrakes, as a single shot often does enough damage to enrage, triggers a block, doesn't apply any affliction, then the scrake enrages instantly cancelling the block anyway.
I reproduced these issues by creating a custom weapon with enough damage to trigger blocks (61 on 1p scrake) and a custom damage type that does 15000 or so freeze power.
I then used this weapon on scrakes (spawning a new one each shot) until a block was triggered.
When the block chance triggered, the scrake could not be frozen (even two consecutive shots of 61 damage and 15000 freeze power would not freeze if the first triggers a block. The second shot enrages the scrake which cancels the block and allows the 3rd shot to freeze instead).
The same occurred when testing with a bloat, so the issue is not unique to scrakes.