diff options
| -rw-r--r-- | src/game/Battlegrounds/Battleground.cpp | 3 | ||||
| -rw-r--r-- | src/game/Scripting/ScriptMgr.cpp | 11 | ||||
| -rw-r--r-- | src/game/Scripting/ScriptMgr.h | 4 |
3 files changed, 18 insertions, 0 deletions
diff --git a/src/game/Battlegrounds/Battleground.cpp b/src/game/Battlegrounds/Battleground.cpp index 0fbace44cb..940a338b7a 100644 --- a/src/game/Battlegrounds/Battleground.cpp +++ b/src/game/Battlegrounds/Battleground.cpp @@ -31,6 +31,7 @@ #include "BattlegroundRL.h" #include "BattlegroundRV.h" #include "Transport.h" +#include "ScriptMgr.h" namespace Trinity { @@ -790,6 +791,8 @@ void Battleground::EndBattleground(TeamId winnerTeamId) winnerMatchmakerChange = bValidArena ? winnerArenaTeam->WonAgainst(winnerMatchmakerRating, loserMatchmakerRating, winnerChange, GetBgMap()) : 0; loserMatchmakerChange = loserArenaTeam->LostAgainst(loserMatchmakerRating, winnerMatchmakerRating, loserChange, GetBgMap()); + sScriptMgr->OnAfterArenaRatingCalculation(this, winnerMatchmakerChange, loserMatchmakerChange); + SetArenaMatchmakerRating(winnerTeamId, winnerMatchmakerRating + winnerMatchmakerChange); SetArenaMatchmakerRating(GetOtherTeamId(winnerTeamId), loserMatchmakerRating + loserMatchmakerChange); SetArenaTeamRatingChangeForTeam(winnerTeamId, winnerChange); diff --git a/src/game/Scripting/ScriptMgr.cpp b/src/game/Scripting/ScriptMgr.cpp index 453e56ea3e..9031dd2e82 100644 --- a/src/game/Scripting/ScriptMgr.cpp +++ b/src/game/Scripting/ScriptMgr.cpp @@ -1545,6 +1545,7 @@ void ScriptMgr::OnAfterStoreOrEquipNewItem(Player* player, uint32 vendorslot, ui FOREACH_SCRIPT(PlayerScript)->OnAfterStoreOrEquipNewItem(player, vendorslot, item, count, bag, slot, pProto, pVendor, crItem, bStore); } + void ScriptMgr::OnAfterUpdateMaxPower(Player* player, Powers& power, float& value) { FOREACH_SCRIPT(PlayerScript)->OnAfterUpdateMaxPower(player, power, value); @@ -1565,6 +1566,16 @@ void ScriptMgr::OnAfterUpdateAttackPowerAndDamage(Player* player, float& level, FOREACH_SCRIPT(PlayerScript)->OnAfterUpdateAttackPowerAndDamage(player, level, base_attPower, attPowerMod, attPowerMultiplier, ranged); } +void ScriptMgr::OnBeforeInitTalentForLevel(Player* player, uint8& level, uint32& talentPointsForLevel) +{ + FOREACH_SCRIPT(PlayerScript)->OnBeforeInitTalentForLevel(player, level, talentPointsForLevel); +} + +void ScriptMgr::OnAfterArenaRatingCalculation(Battleground *const bg, int32 &winnerMatchmakerChange, int32 &loserMatchmakerChange) +{ + FOREACH_SCRIPT(BattlegroundScript)->OnAfterArenaRatingCalculation(bg, winnerMatchmakerChange, loserMatchmakerChange); +} + AllMapScript::AllMapScript(const char* name) : ScriptObject(name) { diff --git a/src/game/Scripting/ScriptMgr.h b/src/game/Scripting/ScriptMgr.h index c75a1dbe7d..60e450cbd7 100644 --- a/src/game/Scripting/ScriptMgr.h +++ b/src/game/Scripting/ScriptMgr.h @@ -598,6 +598,8 @@ class BattlegroundScript : public ScriptObject // Should return a fully valid Battleground object for the type ID. virtual Battleground* GetBattleground() const = 0; + + virtual void OnAfterArenaRatingCalculation(Battleground *const bg, int32 &winnerMatchmakerChange, int32 &loserMatchmakerChange) { }; }; class OutdoorPvPScript : public ScriptObject @@ -1111,6 +1113,8 @@ class ScriptMgr Battleground* CreateBattleground(BattlegroundTypeId typeId); + void OnAfterArenaRatingCalculation(Battleground *const bg, int32 &winnerMatchmakerChange, int32 &loserMatchmakerChange); + public: /* OutdoorPvPScript */ OutdoorPvP* CreateOutdoorPvP(OutdoorPvPData const* data); |
