An easier fix to this "problem" is to have the "missed" attacks have different animations depending on the kind of armor you are wearing. Heavy armor should have a higher chance for the attack to land, but just bounce off harmlessly. Light armor should be more evasive. Medium armor can be a mix.
This.
An extremely simple solutions is, when an attack misses:
- If you're wearing light armor, it says "dodged!" and the animation is a dodge
- If you're wearing heavy armor, it says "blocked!" or "absorbed!" and the animation is...idk nothing? somehow it should represent the weapon hitting your armor
- If you're wearing medium armor, 50% chance for either of ^ animations
A more complex system could actually take into account the roll, armor AC, and dex bonus:
- roll <10: "missed!"
- 10 < roll < base AC of armor (not including Dex bonus): "blocked!" or "absorbed!"
- base AC of armor < roll < full AC (including Dex bonus): "dodged!"
- if wearing a shield and the shield's +2 AC mattered: "blocked!" and the animation is of the character lifting their shield