Magic resistance is applied to effects without a magnitude
Continuation of #8539, taking https://gitlab.com/OpenMW/openmw/-/issues/2321#note_2536610826 into consideration.
`MWMechanics::getEffectResistance` appears to match the research https://wiki.openmw.org/index.php?title=Research:Magic#Magic_resistance but yields non-vanilla effects.
If `x <= 0` so `x` is set to `0`, the final value of `x` can still be non-zero due to `resistance` being factored in. This means that resistance is applied twice, but the second application is unlikely to be meaningful. It also means that a character with 10% magicka resistance will be silenced for 0.9 points, making `GetSilence` return 0. This is not the case in Morrowind.exe where the saved stat is an int and `GetSilence` will return 1 even if the player has 50% magicka resistance.
The research notes that the resistance value is stored separately in what we'd probably call `ESM::ActiveEffect`. It seems likely to me that that value is discarded or disregarded for `NoMagnitude` effects.
We should probably change the code to
```c++
float roll = Misc::Rng::rollClosedProbability(prng) * 100;
if (magicEffect->mData.mFlags & ESM::MagicEffect::NoMagnitude)
{
roll -= resistance;
if (x <= roll)
return 0;
return 100;
}
if (x <= roll)
x = 0;
else
x = roll / std::min(x, 100.f);
x = std::min(x + resistance, 100.f);
return x;
```
issue