aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/World
diff options
context:
space:
mode:
authorJeremy <Golrag@users.noreply.github.com>2023-08-24 22:25:15 +0200
committerGitHub <noreply@github.com>2023-08-24 22:25:15 +0200
commit30f57de184fb96dfb6c548201e7717fa293682e1 (patch)
tree33b6a633035d88050b3f762f87cea96c1f50acbf /src/server/scripts/World
parenta9d459962b221fd2033efa02f059b602c5a546f6 (diff)
Scripts/AreaTrigger: Added CanCaptureFlag and CaptureFlag hooks (#29237)
* also added related areatrigger script
Diffstat (limited to 'src/server/scripts/World')
-rw-r--r--src/server/scripts/World/areatrigger_scripts.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/server/scripts/World/areatrigger_scripts.cpp b/src/server/scripts/World/areatrigger_scripts.cpp
index 8bf43d076ac..a46c5cc0f3f 100644
--- a/src/server/scripts/World/areatrigger_scripts.cpp
+++ b/src/server/scripts/World/areatrigger_scripts.cpp
@@ -16,6 +16,7 @@
*/
#include "ScriptMgr.h"
+#include "AreaTrigger.h"
#include "AreaTriggerAI.h"
#include "DB2Structure.h"
#include "GameObject.h"
@@ -26,6 +27,7 @@
#include "Player.h"
#include "TemporarySummon.h"
#include "World.h"
+#include "ZoneScript.h"
/*######
## at_coilfang_waterfall
@@ -441,6 +443,22 @@ public:
}
};
+struct areatrigger_action_capture_flag : AreaTriggerAI
+{
+ areatrigger_action_capture_flag(AreaTrigger* areatrigger) : AreaTriggerAI(areatrigger) { }
+
+ void OnUnitEnter(Unit* unit) override
+ {
+ if (!unit->IsPlayer())
+ return;
+
+ Player* player = unit->ToPlayer();
+ if (ZoneScript* zoneScript = at->GetZoneScript())
+ if (zoneScript->CanCaptureFlag(at, player))
+ zoneScript->OnCaptureFlag(at, player);
+ }
+};
+
void AddSC_areatrigger_scripts()
{
new AreaTrigger_at_coilfang_waterfall();
@@ -454,4 +472,5 @@ void AddSC_areatrigger_scripts()
RegisterAreaTriggerAI(areatrigger_stormwind_teleport_unit);
RegisterAreaTriggerAI(areatrigger_battleground_buffs);
new AreaTrigger_at_battleground_buffs();
+ RegisterAreaTriggerAI(areatrigger_action_capture_flag);
}