void HandleDummy(SpellEffIndex effIndex) { GetCaster()->CastSpell(GetTargetUnit(),spell_trigger,false); }
void OnCast() { if (GetCaster()->GetTypeId() != TYPEID_PLAYER) return; SpellEntry const* spell = sSpellStore.LookupEntry(SPELL_FRENZIED_BLOODTHIRST); spell = sSpellMgr->GetSpellForDifficultyFromSpell(spell, GetCaster()); GetCaster()->RemoveAura(spell->Id, 0, 0, AURA_REMOVE_BY_ENEMY_SPELL); GetCaster()->CastSpell(GetCaster(), SPELL_ESSENCE_OF_THE_BLOOD_QUEEN_PLR, true); // Presence of the Darkfallen buff on Blood-Queen if (GetCaster()->GetMap()->IsHeroic()) GetCaster()->CastSpell(GetCaster(), SPELL_PRESENCE_OF_THE_DARKFALLEN, true); // Shadowmourne questline if (GetCaster()->ToPlayer()->GetQuestStatus(QUEST_BLOOD_INFUSION) == QUEST_STATUS_INCOMPLETE) { if (Aura* aura = GetCaster()->GetAura(SPELL_GUSHING_WOUND)) { if (aura->GetStackAmount() == 3) { GetCaster()->CastSpell(GetCaster(), SPELL_THIRST_QUENCHED, true); GetCaster()->RemoveAura(aura); } else GetCaster()->CastSpell(GetCaster(), SPELL_GUSHING_WOUND, true); } } if (InstanceScript* instance = GetCaster()->GetInstanceScript()) if (Creature* bloodQueen = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(DATA_BLOOD_QUEEN_LANA_THEL))) bloodQueen->AI()->SetGUID(GetHitUnit()->GetGUID(), GUID_VAMPIRE); }
void FilterTargets(std::list<Unit*>& unitList) { unitList.remove_if(PactOfTheDarkfallenCheck(true)); unitList.push_back(GetCaster()); }
bool CheckProc(ProcEventInfo& eventInfo) { return eventInfo.GetProcTarget() == GetCaster(); }
void HandleEffectScriptEffect(SpellEffIndex /*effIndex*/) { // Refresh Shadow Word: Pain on target if (Unit* unitTarget = GetHitUnit()) if (AuraEffect* aur = unitTarget->GetAuraEffect(SPELL_AURA_PERIODIC_DAMAGE, SPELLFAMILY_PRIEST, 0x8000, 0, 0, GetCaster()->GetGUID())) aur->GetBase()->RefreshDuration(); }
void CalculateDamage(SpellEffIndex effect) { // Formula: 8 + AttackPower * 60 / 100 if (Unit* caster = GetCaster()) SetHitDamage(int32(8 + caster->GetTotalAttackPowerValue(BASE_ATTACK) * 60 / 100)); }
void FilterTargets(std::list<Unit*>& unitList) { unitList.remove(GetCaster()); }
void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { Unit* target = GetTarget(); if (Unit* caster = GetCaster()) caster->CastSpell(target, PALADIN_SPELL_BLESSING_OF_SANCTUARY_BUFF, true); }
void HandleScriptEffect(SpellEffIndex /*effIndex*/) { // Divine Plea if (Aura* aura = GetCaster()->GetAura(PALADIN_SPELL_DIVINE_PLEA)) aura->RefreshDuration(); }
void HandleDummy(SpellEffIndex effIndex) { PreventHitDefaultEffect(effIndex); GetCaster()->CastSpell(GetHitUnit(), SPELL_VILE_GAS_TRIGGER_SUMMON); }
void HandleUpdatePeriodic(AuraEffect* aurEff) { aurEff->CalculatePeriodic(GetCaster()); }
void NotifyTargets() { if (Creature* caster = GetCaster()->ToCreature()) if (Unit* target = GetHitUnit()) caster->AI()->Talk(EMOTE_MUTATED_INFECTION, target); }
void FilterTargets(std::list<Unit*>& unitList) { unitList.remove_if (OrientationCheck(GetCaster())); }
bool Load() { absorbPct = SpellMgr::CalculateSpellEffectAmount(GetSpellProto(), EFFECT_0, GetCaster()); return true; }
void HandleAfterHit() { if (Unit* caster = GetCaster()) caster->RemoveAurasDueToSpell(32216); // Remove Victorious aura }
void FilterTargetsInitial(std::list<Unit*>& unitList) { unitList.remove_if (DistanceCheck(GetCaster())); sharedUnitList = unitList; }
void CalculateDamage(SpellEffIndex effect) { // Formula: 1 + AttackPower * 0.12 if (Unit* caster = GetCaster()) SetHitDamage(int32(1 + caster->GetTotalAttackPowerValue(BASE_ATTACK) * 0.12f)); }
void HandleScriptEffect(SpellEffIndex /*effIndex*/) { Unit* caster = GetCaster(); caster->CastSpell(caster, RAND(SUMMON_ANGRY_KVALDIR, SUMMON_NORTH_SEA_MAKO, SUMMON_NORTH_SEA_THRESHER, SUMMON_NORTH_SEA_BLUE_SHARK)); }
void HandleDummy(SpellEffIndex /*effIndex*/) { int32 healthModSpellBasePoints0 = int32(GetCaster()->CountPctFromMaxHealth(30)); GetCaster()->CastCustomSpell(GetCaster(), WARRIOR_SPELL_LAST_STAND_TRIGGERED, &healthModSpellBasePoints0, NULL, NULL, true, NULL); }
void HandleDummy(SpellEffIndex /*effIndex*/) { Unit* caster = GetCaster(); uint32 spellId = roll_chance_i(50) ? SPELL_CREATE_RESONATING_SKULL : SPELL_CREATE_BONE_DUST; caster->CastSpell(caster, spellId, true, NULL); }
void FilterTargets(std::list<WorldObject*>& unitList) { unitList.remove(GetCaster()); }
bool Load() { return GetCaster()->GetTypeId() == TYPEID_PLAYER && GetCastItem(); }
void FilterTargets(std::list<WorldObject*>& unitList) { unitList.remove_if(Trinity::ObjectGUIDCheck(GetCaster()->GetUInt64Value(UNIT_FIELD_CHANNEL_OBJECT))); }
bool Load() { return GetCaster()->GetTypeId() == TYPEID_PLAYER; }
bool Load() override { if (GetCaster() && GetCaster()->GetTypeId() == TYPEID_UNIT && GetCaster()->ToCreature()->GetIAmABot()) return true; return GetCaster() && GetCaster()->GetTypeId() == TYPEID_PLAYER; }
bool Load() { return GetCaster()->GetTypeId() == TYPEID_UNIT; }
void HandleDummy() { if (GetHitUnit()->GetTypeId() == TYPEID_PLAYER) GetCaster()->CastSpell(GetHitUnit(), SPELL_TWILIGHT_BLOODBOLT, true); }
void CalculateDamage(SpellEffIndex effect) { // Formula: AttackPower * BasePoints / 100 if (Unit* caster = GetCaster()) SetHitDamage(int32(GetHitDamage() * caster->GetTotalAttackPowerValue(BASE_ATTACK) / 100)); }
void HandleTriggerSpellHit(SpellEffIndex effIndex) { PreventHitDefaultEffect(effIndex); if (Unit* target = GetHitUnit()) GetCaster()->CastSpell(target, SPELL_PALADIN_RIGHTEOUS_DEFENSE_TAUNT, true); }
SpellCastResult CheckTarget() { if (GetCaster()->FindNearestCreature(NPC_HONEY_BUNNY, 5.0f, true)) return SPELL_CAST_OK; return SPELL_FAILED_OUT_OF_RANGE; }