Make casting caster-linked on-self effects no-op (bug #4378)

remotes/1728160796594174844/tmp_0.7.0-alpha
Capostrophic 7 years ago committed by Capostrophic
parent aac580da6b
commit be2e7e9e09

@ -40,6 +40,7 @@
Bug #4327: Missing animations during spell/weapon stance switching
Bug #4358: Running animation is interrupted when magic mode is toggled
Bug #4368: Settings window ok button doesn't have key focus by default
Bug #4378: On-self absorb spells restore stats
Bug #4393: NPCs walk back to where they were after using ResetActors
Bug #4416: Handle exception if we try to play non-music file
Bug #4419: MRK NiStringExtraData is handled incorrectly

@ -420,9 +420,9 @@ namespace MWMechanics
if (!checkEffectTarget(effectIt->mEffectID, target, caster, castByPlayer))
continue;
// caster needs to be an actor for linked effects (e.g. Absorb)
// caster needs to be an actor that's not the target for linked effects (e.g. Absorb)
if (magicEffect->mData.mFlags & ESM::MagicEffect::CasterLinked
&& (caster.isEmpty() || !caster.getClass().isActor()))
&& (caster.isEmpty() || !caster.getClass().isActor() || caster == target))
continue;
// If player is healing someone, show the target's HP bar
@ -554,7 +554,7 @@ namespace MWMechanics
// For absorb effects, also apply the effect to the caster - but with a negative
// magnitude, since we're transferring stats from the target to the caster
if (!caster.isEmpty() && caster.getClass().isActor())
if (!caster.isEmpty() && caster != target && caster.getClass().isActor())
{
for (int i=0; i<5; ++i)
{

Loading…
Cancel
Save