In games there may be the idea of resistance/weakness to certain types of attacks. For example, some games have triangles where A beats B, B beats C, and C beats A. Others may implement this in the form of elemental affinities like fire/earth/water/wind that are popular in certain kinds of games.
Now, I can understand what it means to have 0% fire resistance. It means when you take damage from a fire-based attack, you take full damage.
Similarly, if you have 50% fire resistance, then it's like wearing some fire-resistant clothing and the amount of damage you receive is reduced.
At 100% fire resistance, you are fully fire-proof. No amount of fire will do any damage to you (disregarding of laws of physics and thermodynamics at this point)
On the flipside, you have an attack that deals 0% fire damage, or perhaps 50% fire damage and 50% something else. Or maybe 100% fire damage.
What I am having a hard time grasping is what happens when you have 200% fire resistance, or 200% fire damage rate.
Some games cap the rates at 100% using perhaps a call to a min
function. Other games assume that you can absorb the excess amounts (eg: 120% means you absorb 20% of the damage).
But are there any solid arguments for why any rates beyond 100% make sense?
foo(modifier_value, damage_value);
wherefoo
could simply return damage_value / modifier_value. It could also simply return 0 for a modifier higher than a certain threshold. The advantage is that you can stack a lot of buffs with deminishing returns without maximizing your resistance which makes the gameplay more flexible. \$\endgroup\$