diff --git a/apps/openmw/mwmechanics/combat.cpp b/apps/openmw/mwmechanics/combat.cpp index 0aee50de90f..7386116f80e 100644 --- a/apps/openmw/mwmechanics/combat.cpp +++ b/apps/openmw/mwmechanics/combat.cpp @@ -275,8 +275,10 @@ namespace MWMechanics } } - // Apply "On hit" effect of the projectile - bool appliedEnchantment = applyOnStrikeEnchantment(attacker, victim, projectile, hitPosition, true); + // Apply "On hit" effect of the weapon & projectile + bool appliedEnchantment = applyOnStrikeEnchantment(attacker, victim, weapon, hitPosition, true); + if (weapon != projectile) + appliedEnchantment = applyOnStrikeEnchantment(attacker, victim, projectile, hitPosition, true); if (validVictim) { diff --git a/apps/openmw/mwmechanics/enchanting.cpp b/apps/openmw/mwmechanics/enchanting.cpp index 99648e0fc1f..18c80444f3b 100644 --- a/apps/openmw/mwmechanics/enchanting.cpp +++ b/apps/openmw/mwmechanics/enchanting.cpp @@ -150,13 +150,11 @@ namespace MWMechanics case ESM::Enchantment::WhenUsed: if (powerfulSoul && weapclass != ESM::WeaponType::Ammo && weapclass != ESM::WeaponType::Thrown) mCastStyle = ESM::Enchantment::ConstantEffect; - else if (weapclass != ESM::WeaponType::Ranged) + else mCastStyle = ESM::Enchantment::WhenStrikes; return; default: // takes care of Constant effect too - mCastStyle = ESM::Enchantment::WhenUsed; - if (weapclass != ESM::WeaponType::Ranged) - mCastStyle = ESM::Enchantment::WhenStrikes; + mCastStyle = ESM::Enchantment::WhenStrikes; return; } }