summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/game/Battlegrounds/Battleground.cpp3
-rw-r--r--src/game/Scripting/ScriptMgr.cpp11
-rw-r--r--src/game/Scripting/ScriptMgr.h4
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);