/* * Copyright (C) 2012-2017 CypherCore * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Framework.Constants; using Game.Entities; using Game.Scripting; using Game.Spells; namespace Scripts.Events { struct HallowsEnd { public const uint ItemWaterBucket = 32971; public const uint SpellHasWaterBucket = 42336; } [Script] class spell_hallows_end_has_water_bucket : AuraScript { public override bool Validate(SpellInfo spellInfo) { return ValidateSpellInfo(HallowsEnd.SpellHasWaterBucket); } void HandleEffectApply(AuraEffect aurEff, AuraEffectHandleModes mode) { Unit caster = GetCaster(); if (caster) if (caster.IsPlayer()) if (!caster.ToPlayer().HasItemCount(HallowsEnd.ItemWaterBucket, 1, false)) caster.RemoveAurasDueToSpell(HallowsEnd.SpellHasWaterBucket); } public override void Register() { AfterEffectApply.Add(new EffectApplyHandler(HandleEffectApply, 0, AuraType.Dummy, AuraEffectHandleModes.Real)); } } }