From 8cde649e39bba3598b1ecbda005b35d586c7d171 Mon Sep 17 00:00:00 2001 From: Paul Coene Date: Mon, 9 Feb 2015 17:04:44 -0500 Subject: [PATCH] A non magical weapon with an augment tagged as magical now registers as a magig weapon when attacking a creature requiring magic --- zone/attack.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/zone/attack.cpp b/zone/attack.cpp index 25dc88688..70303bcb6 100644 --- a/zone/attack.cpp +++ b/zone/attack.cpp @@ -908,6 +908,7 @@ int Mob::GetWeaponDamage(Mob *against, const ItemInst *weapon_item, uint32 *hate { int dmg = 0; int banedmg = 0; + int x = 0; if(!against || against->GetInvul() || against->GetSpecialAbility(IMMUNE_MELEE)){ return 0; @@ -936,10 +937,20 @@ int Mob::GetWeaponDamage(Mob *against, const ItemInst *weapon_item, uint32 *hate bool MagicWeapon = false; if(weapon_item->GetItem() && weapon_item->GetItem()->Magic) MagicWeapon = true; - else { + else if(spellbonuses.MagicWeapon || itembonuses.MagicWeapon) MagicWeapon = true; - } + else + // An augment on the weapon that is marked magic makes + // the item magical. + for(x = 0; MagicWeapon == false && x < EmuConstants::ITEM_COMMON_SIZE; x++) + { + if(weapon_item->GetAugment(x) && weapon_item->GetAugment(x)->GetItem()) + { + if (weapon_item->GetAugment(x)->GetItem()->Magic) + MagicWeapon = true; + } + } if(MagicWeapon) {