Start: EventAnyDamage gets fired. Set the Damage as a variable and set a Scope variable (reset it every start of EventAnyDamage). After that execute CheckAngle Event:
CheckAngle: Check where the hit comes from and set the Scope for this attack. 2 = Hit is NOT from behind, 4 = Hit is from behind. Bigger value = bad for the player. Then execute CheckStance:
CheckStance: Check the stance of the player. Is the player blocking add 0, ist the player NOT blocking, add 3. So the overall scope for the attack can become 2,4,5,7 which translates to:
|2|Hit from Front|Block|
|4|Hit From Back|Block|
|5|Hit from Front|No Block|
|7|Hit from Back|No Block|
After that execute DamageMultiplier.
DamageMultiplier: Depending on the scope of the attack (bigger value = bad) get a float value from a curve and multiply the incoming damage with it (no block, more damage). The curve has the points:
x y
2 0
4 0,65
5 1
7 1,6
Outcome: First, check if there us health left. If there is no health left, you can play the DeadScreen (if you want to). If there is health left, you can check the scop of the attack: 4 and 7 will be animations where the attack comes from behind. 5 will be the animation with the attack from the front. And then continue with your event.