aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKittnz <Kittnz@users.noreply.github.com>2016-05-28 10:44:37 +0200
committerKittnz <Kittnz@users.noreply.github.com>2016-05-28 10:44:37 +0200
commitcac726ced877a6c48a3c0c1cae955bdb9bc54e2b (patch)
tree838e22c5957cd40efb27e4459519b4dcac18c60b /src
parentadf68a993e1d386a10ef4c18fa0c9260526cfc9c (diff)
parente016bf8d06c8236c160ecaf63c6a4f26f7d4467b (diff)
Merge pull request #17198 from sirikfoll/Bombs
Core/Achievement A-bomb-inable and A-bomb-ination by sirikfoll
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/IsleOfConquest/isle_of_conquest.cpp53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/server/scripts/Northrend/IsleOfConquest/isle_of_conquest.cpp b/src/server/scripts/Northrend/IsleOfConquest/isle_of_conquest.cpp
index 11cc645f0cb..f7e83ff1f42 100644
--- a/src/server/scripts/Northrend/IsleOfConquest/isle_of_conquest.cpp
+++ b/src/server/scripts/Northrend/IsleOfConquest/isle_of_conquest.cpp
@@ -259,6 +259,58 @@ class spell_ioc_launch : public SpellScriptLoader
}
};
+enum SeaforiumBombSpells
+{
+ SPELL_SEAFORIUM_BLAST = 66676,
+ SPELL_HUGE_SEAFORIUM_BLAST = 66672,
+ SPELL_A_BOMB_INABLE_CREDIT = 68366,
+ SPELL_A_BOMB_INATION_CREDIT = 68367
+};
+
+class spell_ioc_seaforium_blast_credit : public SpellScriptLoader
+{
+ public:
+ spell_ioc_seaforium_blast_credit() : SpellScriptLoader("spell_ioc_seaforium_blast_credit") { }
+
+ class spell_ioc_seaforium_blast_credit_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_ioc_seaforium_blast_credit_SpellScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_A_BOMB_INABLE_CREDIT) || !sSpellMgr->GetSpellInfo(SPELL_A_BOMB_INATION_CREDIT))
+ return false;
+ return true;
+ }
+
+ void HandleAchievementCredit(SpellEffIndex /*effIndex*/)
+ {
+ uint32 _creditSpell = 0;
+ Unit* caster = GetOriginalCaster();
+ if (!caster)
+ return;
+
+ if (GetSpellInfo()->Id == SPELL_SEAFORIUM_BLAST)
+ _creditSpell = SPELL_A_BOMB_INABLE_CREDIT;
+ else if (GetSpellInfo()->Id == SPELL_HUGE_SEAFORIUM_BLAST)
+ _creditSpell = SPELL_A_BOMB_INATION_CREDIT;
+
+ if (GetHitGObj() && GetHitGObj()->IsDestructibleBuilding())
+ caster->CastSpell(caster, _creditSpell, true);
+ }
+
+ void Register() override
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_ioc_seaforium_blast_credit_SpellScript::HandleAchievementCredit, EFFECT_1, SPELL_EFFECT_GAMEOBJECT_DAMAGE);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_ioc_seaforium_blast_credit_SpellScript();
+ }
+};
+
void AddSC_isle_of_conquest()
{
new npc_four_car_garage();
@@ -266,4 +318,5 @@ void AddSC_isle_of_conquest()
new spell_ioc_gunship_portal();
new spell_ioc_parachute_ic();
new spell_ioc_launch();
+ new spell_ioc_seaforium_blast_credit();
}