isn't that basically a varible or boolean check?
No, IsVulnerableToAttack is meant to be a custom condition that can include dozens of checks analyzing various enemy and attack properties. For example, an enemy might be vulnerable to a "fire" attack if it’s an "ice" type or has 0 armor, but also doesn’t have a magic shield, and isn’t in an "immortal" state.
Putting all those complex checks in a separate block and then using a single Enemy IsVulnerableToAttack condition in your main logic would make the code much cleaner and easier to read.