Fixed Shiv.

* Now it does weapon dmg and adds a combo point even without poison (yes, that's blizzlike).
* Poisons from Shiv cannot crit.
* No more double poison procs.

--HG--
branch : trunk
This commit is contained in:
Xanadu
2010-06-27 20:40:41 +02:00
parent 0b063e189b
commit ba2e5ec2a2
3 changed files with 12 additions and 30 deletions
+2 -29
View File
@@ -1738,41 +1738,14 @@ void Spell::EffectDummy(uint32 i)
m_caster->CastSpell(m_caster, 63848, true);
break;
}
switch(m_spellInfo->Id)
switch (m_spellInfo->Id)
{
case 5938: // Shiv
{
if (m_caster->GetTypeId() != TYPEID_PLAYER)
return;
Player *pCaster = m_caster->ToPlayer();
Item *item = pCaster->GetWeaponForAttack(OFF_ATTACK);
if (!item)
return;
// all poison enchantments is temporary
uint32 enchant_id = item->GetEnchantmentId(TEMP_ENCHANTMENT_SLOT);
if (!enchant_id)
return;
SpellItemEnchantmentEntry const *pEnchant = sSpellItemEnchantmentStore.LookupEntry(enchant_id);
if (!pEnchant)
return;
for (int s=0; s<3; s++)
{
if (pEnchant->type[s] != ITEM_ENCHANTMENT_TYPE_COMBAT_SPELL)
continue;
SpellEntry const* combatEntry = sSpellStore.LookupEntry(pEnchant->spellid[s]);
if (!combatEntry || combatEntry->Dispel != DISPEL_POISON)
continue;
m_caster->CastSpell(unitTarget, combatEntry, true, item);
}
m_caster->CastSpell(unitTarget, 5940, true);
m_caster->CastSpell(unitTarget, 5940, true);
return;
}
case 14185: // Preparation