Merge pull request #15977 from tkrokli/landmine_knockback_achievement

Scripts/Spells: Mine Sweeper achievement
This commit is contained in:
jackpoz
2016-01-09 23:19:09 +01:00
2 changed files with 55 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
--
-- Enable Landmine Knockback Achievement by removing it from disables
DELETE FROM `disables` WHERE `sourceType`= 4 AND `entry`= 5258;
-- Insert missing Landmine Knockback Achievement criteria data
DELETE FROM `achievement_criteria_data` WHERE `criteria_id`= 5258;
INSERT INTO `achievement_criteria_data` (`criteria_id`, `type`, `value1`, `value2`, `ScriptName`) VALUES
(5258,0,57064,0,'');
-- Update description for the linked spells 54355 and 54402
UPDATE `spell_linked_spell` SET `comment`= 'Trigger Detonation with Land Mine Knockback' WHERE `spell_trigger` = 54355;
-- Insert spell script name for spell 57099
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_gen_landmine_knockback_achievement';
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(57099,'spell_gen_landmine_knockback_achievement');

View File

@@ -4120,6 +4120,44 @@ public:
}
};
enum LandmineKnockbackAchievement
{
SPELL_LANDMINE_KNOCKBACK_ACHIEVEMENT = 57064
};
class spell_gen_landmine_knockback_achievement : public SpellScriptLoader
{
public:
spell_gen_landmine_knockback_achievement() : SpellScriptLoader("spell_gen_landmine_knockback_achievement") { }
class spell_gen_landmine_knockback_achievement_SpellScript : public SpellScript
{
PrepareSpellScript(spell_gen_landmine_knockback_achievement_SpellScript);
void HandleScript(SpellEffIndex /*effIndex*/)
{
if (Player* target = GetHitPlayer())
{
Aura const* aura = GetHitAura();
if (!aura || aura->GetStackAmount() < 10)
return;
target->CastSpell(target, SPELL_LANDMINE_KNOCKBACK_ACHIEVEMENT, true);
}
}
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_gen_landmine_knockback_achievement_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
SpellScript* GetSpellScript() const override
{
return new spell_gen_landmine_knockback_achievement_SpellScript();
}
};
void AddSC_generic_spell_scripts()
{
new spell_gen_absorb0_hitlimit1();
@@ -4205,4 +4243,5 @@ void AddSC_generic_spell_scripts()
new spell_gen_gm_freeze();
new spell_gen_stand();
new spell_gen_mixology_bonus();
new spell_gen_landmine_knockback_achievement();
}