aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/SpellEffects.cpp
diff options
context:
space:
mode:
authorazazel <none@none>2010-08-09 23:22:31 +0600
committerazazel <none@none>2010-08-09 23:22:31 +0600
commitf5399618d9da2f20a8c7fcc51175096d85521afa (patch)
tree7bbc709494cbda0f4bccc6d50a6c89fb0ad57a78 /src/server/game/Spells/SpellEffects.cpp
parent5643dee52fe635ba4540d6bd6aa91e974a4b4849 (diff)
Implement reputation rates and aura effects for Spell::EffectReputation() (thanks Lynx3d)
--HG-- branch : trunk
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
-rw-r--r--src/server/game/Spells/SpellEffects.cpp25
1 files changed, 12 insertions, 13 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index a72e9e83401..ed41f43af6f 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -6536,26 +6536,25 @@ void Spell::EffectLeap(uint32 i)
void Spell::EffectReputation(uint32 i)
{
- if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER)
+ if (!unitTarget)
return;
- Player *_player = (Player*)unitTarget;
-
- int32 rep_change = damage;//+1; // field store reputation change -1
+ if (Player *_player = unitTarget->ToPlayer())
+ {
+ int32 rep_change = damage;//+1; // field store reputation change -1
+ uint32 faction_id = m_spellInfo->EffectMiscValue[i];
- uint32 faction_id = m_spellInfo->EffectMiscValue[i];
+ FactionEntry const* factionEntry = sFactionStore.LookupEntry(faction_id);
+ if (!factionEntry)
+ return;
- FactionEntry const* factionEntry = sFactionStore.LookupEntry(faction_id);
+ if (RepRewardRate const * repData = sObjectMgr.GetRepRewardRate(faction_id))
+ rep_change = (float)rep_change * repData->spell_rate;
- if (!factionEntry)
- return;
+ rep_change = _player->CalculateReputationGain(REPUTATION_SOURCE_SPELL, rep_change, faction_id);
- if (RepRewardRate const * repData = sObjectMgr.GetRepRewardRate(faction_id))
- {
- rep_change = (float)rep_change * repData->spell_rate;
+ _player->GetReputationMgr().ModifyReputation(factionEntry, rep_change);
}
-
- _player->GetReputationMgr().ModifyReputation(factionEntry, rep_change);
}
void Spell::EffectQuestComplete(uint32 i)