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());
 }
Beispiel #4
0
 bool CheckProc(ProcEventInfo& eventInfo)
 {
     return eventInfo.GetProcTarget() == GetCaster();
 }
Beispiel #5
0
 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();
 }
Beispiel #6
0
 void CalculateDamage(SpellEffIndex effect)
 {
     // Formula: 8 + AttackPower * 60 / 100
     if (Unit* caster = GetCaster())
         SetHitDamage(int32(8 + caster->GetTotalAttackPowerValue(BASE_ATTACK) * 60 / 100));
 }
Beispiel #7
0
 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();
 }
Beispiel #10
0
 void HandleDummy(SpellEffIndex effIndex)
 {
     PreventHitDefaultEffect(effIndex);
     GetCaster()->CastSpell(GetHitUnit(), SPELL_VILE_GAS_TRIGGER_SUMMON);
 }
 void HandleUpdatePeriodic(AuraEffect* aurEff)
 {
     aurEff->CalculatePeriodic(GetCaster());
 }
Beispiel #12
0
 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()));
 }
Beispiel #14
0
		bool Load() {
			absorbPct = SpellMgr::CalculateSpellEffectAmount(GetSpellProto(),
					EFFECT_0, GetCaster());
			return true;
		}
Beispiel #15
0
 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;
 }
Beispiel #17
0
 void CalculateDamage(SpellEffIndex effect)
 {
     // Formula: 1 + AttackPower * 0.12
     if (Unit* caster = GetCaster())
         SetHitDamage(int32(1 + caster->GetTotalAttackPowerValue(BASE_ATTACK) * 0.12f));
 }
Beispiel #18
0
 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));
 }
Beispiel #19
0
 void HandleDummy(SpellEffIndex /*effIndex*/)
 {
     int32 healthModSpellBasePoints0 = int32(GetCaster()->CountPctFromMaxHealth(30));
     GetCaster()->CastCustomSpell(GetCaster(), WARRIOR_SPELL_LAST_STAND_TRIGGERED, &healthModSpellBasePoints0, NULL, NULL, true, NULL);
 }
Beispiel #20
0
 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);
 }
Beispiel #21
0
 void FilterTargets(std::list<WorldObject*>& unitList)
 {
     unitList.remove(GetCaster());
 }
Beispiel #22
0
 bool Load()
 {
     return GetCaster()->GetTypeId() == TYPEID_PLAYER && GetCastItem();
 }
Beispiel #23
0
 void FilterTargets(std::list<WorldObject*>& unitList)
 {
     unitList.remove_if(Trinity::ObjectGUIDCheck(GetCaster()->GetUInt64Value(UNIT_FIELD_CHANNEL_OBJECT)));
 }
Beispiel #24
0
 bool Load()
 {
     return GetCaster()->GetTypeId() == TYPEID_PLAYER;
 }
Beispiel #25
0
 bool Load() override
 {
     if (GetCaster() && GetCaster()->GetTypeId() == TYPEID_UNIT && GetCaster()->ToCreature()->GetIAmABot()) return true;
     return GetCaster() && GetCaster()->GetTypeId() == TYPEID_PLAYER;
 }
Beispiel #26
0
 bool Load()
 {
     return GetCaster()->GetTypeId() == TYPEID_UNIT;
 }
 void HandleDummy()
 {
     if (GetHitUnit()->GetTypeId() == TYPEID_PLAYER)
         GetCaster()->CastSpell(GetHitUnit(), SPELL_TWILIGHT_BLOODBOLT, true);
 }
Beispiel #28
0
 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);
 }
Beispiel #30
0
 SpellCastResult CheckTarget()
 {
     if (GetCaster()->FindNearestCreature(NPC_HONEY_BUNNY, 5.0f, true))
         return SPELL_CAST_OK;
     return SPELL_FAILED_OUT_OF_RANGE;
 }