diff options
| author | azazel <none@none> | 2010-08-09 23:22:31 +0600 |
|---|---|---|
| committer | azazel <none@none> | 2010-08-09 23:22:31 +0600 |
| commit | f5399618d9da2f20a8c7fcc51175096d85521afa (patch) | |
| tree | 7bbc709494cbda0f4bccc6d50a6c89fb0ad57a78 /src/server/game/Spells/SpellEffects.cpp | |
| parent | 5643dee52fe635ba4540d6bd6aa91e974a4b4849 (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.cpp | 25 |
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) |
