diff options
Diffstat (limited to 'src/game/SpellEffects.cpp')
-rw-r--r-- | src/game/SpellEffects.cpp | 46 |
1 files changed, 34 insertions, 12 deletions
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 27a51ee8b34..e7c67f4f41e 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -152,7 +152,7 @@ pEffect SpellEffects[TOTAL_SPELL_EFFECTS]= &Spell::EffectSummonPlayer, // 85 SPELL_EFFECT_SUMMON_PLAYER &Spell::EffectActivateObject, // 86 SPELL_EFFECT_ACTIVATE_OBJECT &Spell::EffectUnused, // 87 SPELL_EFFECT_WMO_DAMAGE - &Spell::EffectUnused, // 88 SPELL_EFFECT_WMO_REPAIR + &Spell::EffectUnused, // 88 SPELL_EFFECT_WMO_REPAIR &Spell::EffectUnused, // 89 SPELL_EFFECT_WMO_CHANGE &Spell::EffectUnused, // 90 SPELL_EFFECT_KILL_CREDIT &Spell::EffectUnused, // 91 SPELL_EFFECT_THREAT_ALL one spell: zzOLDBrainwash @@ -221,9 +221,9 @@ pEffect SpellEffects[TOTAL_SPELL_EFFECTS]= &Spell::EffectNULL, //154 unused &Spell::EffectTitanGrip, //155 SPELL_EFFECT_TITAN_GRIP Allows you to equip two-handed axes, maces and swords in one hand, but you attack $49152s1% slower than normal. &Spell::EffectNULL, //156 Add Socket - &Spell::EffectCreateItem, //157 SPELL_EFFECT_CREATE_ITEM_2 create/learn item/spell for profession - &Spell::EffectMilling, //158 milling - &Spell::EffectNULL //159 allow rename pet once again + &Spell::EffectCreateItem, //157 SPELL_EFFECT_CREATE_ITEM_2 create/learn item/spell for profession + &Spell::EffectMilling, //158 SPELL_EFFECT_MILLING milling + &Spell::EffectRenamePet //159 SPELL_EFFECT_ALLOW_RENAME_PET allow rename pet once again }; void Spell::EffectNULL(uint32 /*i*/) @@ -532,7 +532,7 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx) // Lookup for Deadly poison (only attacker applied) Unit::AuraList const& auras = unitTarget->GetAurasByType(SPELL_AURA_PERIODIC_DAMAGE); for(Unit::AuraList::const_iterator itr = auras.begin(); itr!=auras.end(); ++itr) - if( (*itr)->GetSpellProto()->SpellFamilyName==SPELLFAMILY_ROGUE && + if( (*itr)->GetSpellProto()->SpellFamilyName==SPELLFAMILY_ROGUE && (*itr)->GetSpellProto()->SpellFamilyFlags & 0x10000 && (*itr)->GetCasterGUID()==m_caster->GetGUID() ) { @@ -1016,7 +1016,7 @@ void Spell::EffectDummy(uint32 i) { Aura * dummy = m_caster->GetDummyAura(28734); if (dummy) - { + { int32 bp = damage * dummy->GetStackAmount(); m_caster->CastCustomSpell(m_caster, 28733, &bp, NULL, NULL, true); m_caster->RemoveAurasDueToSpell(28734); @@ -1354,7 +1354,7 @@ void Spell::EffectDummy(uint32 i) if (Aura *aura = m_caster->GetDummyAura(58367)) rage+=aura->GetModifier()->m_amount; - int32 basePoints0 = damage+int32(rage * m_spellInfo->DmgMultiplier[i] + + int32 basePoints0 = damage+int32(rage * m_spellInfo->DmgMultiplier[i] + m_caster->GetTotalAttackPowerValue(BASE_ATTACK)*0.2f); m_caster->CastCustomSpell(unitTarget, 20647, &basePoints0, NULL, NULL, true, 0); m_caster->SetPower(POWER_RAGE,0); @@ -1819,7 +1819,7 @@ void Spell::EffectDummy(uint32 i) Unit::AuraList const& auraDummy = m_caster->GetAurasByType(SPELL_AURA_DUMMY); for(Unit::AuraList::const_iterator itr = auraDummy.begin(); itr != auraDummy.end(); ++itr) { - if( (*itr)->GetSpellProto()->SpellFamilyName==SPELLFAMILY_SHAMAN && + if( (*itr)->GetSpellProto()->SpellFamilyName==SPELLFAMILY_SHAMAN && (*itr)->GetSpellProto()->SpellFamilyFlags & 0x0000000000200000LL && (*itr)->GetCastItemGUID() == item->GetGUID()) { @@ -4370,9 +4370,16 @@ void Spell::SpellDamageWeaponDmg(uint32 i) Unit::AuraList const& list = unitTarget->GetAurasByType(SPELL_AURA_MOD_RESISTANCE); for(Unit::AuraList::const_iterator itr=list.begin();itr!=list.end();++itr) { +<<<<<<< HEAD:src/game/SpellEffects.cpp SpellEntry const *proto = (*itr)->GetSpellProto(); if(proto->SpellFamilyName == SPELLFAMILY_WARRIOR && proto->SpellFamilyFlags == SPELLFAMILYFLAG_WARRIOR_SUNDERARMOR) +======= + SpellEntry const *spellInfo = (*itr).second->GetSpellProto(); + if( spellInfo->SpellFamilyName == SPELLFAMILY_WARRIOR && + spellInfo->SpellFamilyFlags & 0x0000000000004000LL && + (*itr).second->GetCasterGUID() == m_caster->GetGUID()) +>>>>>>> upstream/master:src/game/SpellEffects.cpp { (*itr)->RefreshAura(); stack = (*itr)->GetStackAmount(); @@ -5017,7 +5024,7 @@ void Spell::EffectScriptEffect(uint32 effIndex) case 60893: // Northrend Alchemy Research case 61177: // Northrend Inscription Research case 61288: // Minor Inscription Research - case 61756: // Northrend Inscription Research (FAST QA VERSION) + case 61756: // Northrend Inscription Research (FAST QA VERSION) { if(!IsExplicitDiscoverySpell(m_spellInfo)) { @@ -6152,6 +6159,12 @@ void Spell::EffectSendTaxi(uint32 i) case 34905: //Stealth Flight mountid = 6851; break; + case 45883: //Amber Ledge to Beryl Point + mountid = 23524; + break; + case 46064: //Amber Ledge to Coldarra + mountid = 6371; + break; case 53335: //Stormwind Harbor Flight - Peaceful mountid = 6852; break; @@ -6652,7 +6665,7 @@ void Spell::EffectQuestFail(uint32 i) ((Player*)unitTarget)->FailQuest(m_spellInfo->EffectMiscValue[i]); } -void Spell::EffectActivateRune(uint32 i) +void Spell::EffectActivateRune(uint32 eff_idx) { if(m_caster->GetTypeId() != TYPEID_PLAYER) return; @@ -6664,14 +6677,14 @@ void Spell::EffectActivateRune(uint32 i) for(uint32 j = 0; j < MAX_RUNES; ++j) { - if(plr->GetRuneCooldown(j) && plr->GetCurrentRune(j) == m_spellInfo->EffectMiscValue[i]) + if(plr->GetRuneCooldown(j) && plr->GetCurrentRune(j) == m_spellInfo->EffectMiscValue[eff_idx]) { plr->SetRuneCooldown(j, 0); } } } -void Spell::EffectTitanGrip(uint32 i) +void Spell::EffectTitanGrip(uint32 /*eff_idx*/) { if (unitTarget && unitTarget->GetTypeId() == TYPEID_PLAYER) ((Player*)unitTarget)->SetCanTitanGrip(true); @@ -6682,3 +6695,12 @@ void Spell::EffectRedirectThreat(uint32 /*i*/) if(unitTarget) m_caster->SetReducedThreatPercent((uint32)damage, unitTarget->GetGUID()); } + +void Spell::EffectRenamePet(uint32 /*eff_idx*/) +{ + if (!unitTarget || unitTarget->GetTypeId() != TYPEID_UNIT || + !((Creature*)unitTarget)->isPet() || ((Pet*)unitTarget)->getPetType() != HUNTER_PET) + return; + + unitTarget->SetByteValue(UNIT_FIELD_BYTES_2, 2, UNIT_RENAME_ALLOWED); +} |