Core/Quests: Fixed Unholy Infusion (24749), Blood Infusion (24756) and added partial support for Frost Infusion (24757)
--HG-- branch : trunk
This commit is contained in:
@@ -5744,8 +5744,34 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
|
|||||||
// Shadow's Fate (Shadowmourne questline)
|
// Shadow's Fate (Shadowmourne questline)
|
||||||
case 71169:
|
case 71169:
|
||||||
{
|
{
|
||||||
triggered_spell_id = 71203;
|
|
||||||
target = triggeredByAura->GetCaster();
|
target = triggeredByAura->GetCaster();
|
||||||
|
Player* player = target->ToPlayer();
|
||||||
|
if (!player)
|
||||||
|
return false;
|
||||||
|
// not checking Infusion auras because its in targetAuraSpell of credit spell
|
||||||
|
if (player->GetQuestStatus(24749) == QUEST_STATUS_INCOMPLETE) // Unholy Infusion
|
||||||
|
{
|
||||||
|
if (GetEntry() != 36678) // Professor Putricide
|
||||||
|
return false;
|
||||||
|
CastSpell(target, 71518, true); // Quest Credit
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if (player->GetQuestStatus(24756) == QUEST_STATUS_INCOMPLETE) // Blood Infusion
|
||||||
|
{
|
||||||
|
if (GetEntry() != 37955) // Blood-Queen Lana'thel
|
||||||
|
return false;
|
||||||
|
CastSpell(target, 72934, true); // Quest Credit
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if (player->GetQuestStatus(24757) == QUEST_STATUS_INCOMPLETE) // Frost Infusion
|
||||||
|
{
|
||||||
|
if (GetEntry() != 36853) // Sindragosa
|
||||||
|
return false;
|
||||||
|
CastSpell(target, 72289, true); // Quest Credit
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if (player->GetQuestStatus(24547) == QUEST_STATUS_INCOMPLETE) // A Feast of Souls
|
||||||
|
triggered_spell_id = 71203;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// Gaseous Bloat (Professor Putricide add)
|
// Gaseous Bloat (Professor Putricide add)
|
||||||
@@ -8863,10 +8889,29 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, AuraEffect* trig
|
|||||||
break;
|
break;
|
||||||
// Shadow's Fate (Shadowmourne questline)
|
// Shadow's Fate (Shadowmourne questline)
|
||||||
case 71169:
|
case 71169:
|
||||||
|
{
|
||||||
if (GetTypeId() != TYPEID_PLAYER)
|
if (GetTypeId() != TYPEID_PLAYER)
|
||||||
return false;
|
return false;
|
||||||
if (ToPlayer()->GetQuestStatus(24547) != QUEST_STATUS_INCOMPLETE) // A Feast of Souls
|
|
||||||
|
Player* player = this->ToPlayer();
|
||||||
|
if (player->GetQuestStatus(24749) == QUEST_STATUS_INCOMPLETE) // Unholy Infusion
|
||||||
|
{
|
||||||
|
if (!player->HasAura(71516) || pVictim->GetEntry() != 36678) // Shadow Infusion && Professor Putricide
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
else if (player->GetQuestStatus(24756) == QUEST_STATUS_INCOMPLETE) // Blood Infusion
|
||||||
|
{
|
||||||
|
if (!player->HasAura(72154) || pVictim->GetEntry() != 37955) // Thirst Quenched && Blood-Queen Lana'thel
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else if (player->GetQuestStatus(24757) == QUEST_STATUS_INCOMPLETE) // Frost Infusion
|
||||||
|
{
|
||||||
|
if (!player->HasAura(72290) || pVictim->GetEntry() != 36853) // Frost-Imbued Blade && Sindragosa
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else if (player->GetQuestStatus(24547) != QUEST_STATUS_INCOMPLETE) // A Feast of Souls
|
||||||
|
return false;
|
||||||
|
|
||||||
if (pVictim->GetTypeId() != TYPEID_UNIT)
|
if (pVictim->GetTypeId() != TYPEID_UNIT)
|
||||||
return false;
|
return false;
|
||||||
// critters are not allowed
|
// critters are not allowed
|
||||||
@@ -8874,6 +8919,7 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, AuraEffect* trig
|
|||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (cooldown && GetTypeId() == TYPEID_PLAYER && ToPlayer()->HasSpellCooldown(trigger_spell_id))
|
if (cooldown && GetTypeId() == TYPEID_PLAYER && ToPlayer()->HasSpellCooldown(trigger_spell_id))
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -3888,11 +3888,6 @@ void SpellMgr::LoadSpellCustomAttr()
|
|||||||
spellInfo->EffectImplicitTargetA[0] = TARGET_DST_DB;
|
spellInfo->EffectImplicitTargetA[0] = TARGET_DST_DB;
|
||||||
count++;
|
count++;
|
||||||
break;
|
break;
|
||||||
// Deathbringer Saurfang achievement (must be cast on players, cannot do that with ENTRY target)
|
|
||||||
case 72928:
|
|
||||||
spellInfo->EffectImplicitTargetB[0] = TARGET_UNIT_AREA_ENEMY_SRC;
|
|
||||||
count++;
|
|
||||||
break;
|
|
||||||
case 63675: // Improved Devouring Plague
|
case 63675: // Improved Devouring Plague
|
||||||
spellInfo->AttributesEx3 |= SPELL_ATTR_EX3_NO_DONE_BONUS;
|
spellInfo->AttributesEx3 |= SPELL_ATTR_EX3_NO_DONE_BONUS;
|
||||||
count++;
|
count++;
|
||||||
@@ -3954,6 +3949,12 @@ void SpellMgr::LoadSpellCustomAttr()
|
|||||||
spellInfo->EffectImplicitTargetB[0] = TARGET_UNIT_TARGET_ENEMY;
|
spellInfo->EffectImplicitTargetB[0] = TARGET_UNIT_TARGET_ENEMY;
|
||||||
count++;
|
count++;
|
||||||
break;
|
break;
|
||||||
|
case 71518: // Unholy Infusion Quest Credit
|
||||||
|
case 72934: // Blood Infusion Quest Credit
|
||||||
|
case 72289: // Frost Infusion Quest Credit
|
||||||
|
spellInfo->EffectRadiusIndex[0] = 28; // another missing radius
|
||||||
|
count++;
|
||||||
|
break;
|
||||||
case 71708: // Empowered Flare
|
case 71708: // Empowered Flare
|
||||||
case 72785: // Empowered Flare
|
case 72785: // Empowered Flare
|
||||||
case 72786: // Empowered Flare
|
case 72786: // Empowered Flare
|
||||||
|
|||||||
@@ -61,6 +61,15 @@ enum eSpells
|
|||||||
SPELL_BLOODBOLT_WHIRL = 71772,
|
SPELL_BLOODBOLT_WHIRL = 71772,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum eShadowmourne
|
||||||
|
{
|
||||||
|
QUEST_BLOOD_INFUSION = 24756,
|
||||||
|
ITEM_SHADOW_S_EDGE = 49888,
|
||||||
|
|
||||||
|
SPELL_GUSHING_WOUND = 72132,
|
||||||
|
SPELL_THIRST_QUENCHED = 72154,
|
||||||
|
};
|
||||||
|
|
||||||
static const uint32 vampireAuras[3][MAX_DIFFICULTY] =
|
static const uint32 vampireAuras[3][MAX_DIFFICULTY] =
|
||||||
{
|
{
|
||||||
{70867, 71473, 71532, 71533},
|
{70867, 71473, 71532, 71533},
|
||||||
@@ -182,6 +191,12 @@ class boss_blood_queen_lana_thel : public CreatureScript
|
|||||||
instance->DoRemoveAurasDueToSpellOnPlayers(ESSENCE_OF_BLOOD_QUEEN);
|
instance->DoRemoveAurasDueToSpellOnPlayers(ESSENCE_OF_BLOOD_QUEEN);
|
||||||
instance->DoRemoveAurasDueToSpellOnPlayers(ESSENCE_OF_BLOOD_QUEEN_PLR);
|
instance->DoRemoveAurasDueToSpellOnPlayers(ESSENCE_OF_BLOOD_QUEEN_PLR);
|
||||||
instance->DoRemoveAurasDueToSpellOnPlayers(FRENZIED_BLOODTHIRST);
|
instance->DoRemoveAurasDueToSpellOnPlayers(FRENZIED_BLOODTHIRST);
|
||||||
|
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_UNCONTROLLABLE_FRENZY);
|
||||||
|
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_BLOOD_MIRROR_DAMAGE);
|
||||||
|
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_BLOOD_MIRROR_VISUAL);
|
||||||
|
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_BLOOD_MIRROR_DUMMY);
|
||||||
|
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_DELIRIOUS_SLASH);
|
||||||
|
instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_PACT_OF_THE_DARKFALLEN);
|
||||||
instance->SetBossState(DATA_BLOOD_QUEEN_LANA_THEL, DONE);
|
instance->SetBossState(DATA_BLOOD_QUEEN_LANA_THEL, DONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -273,6 +288,10 @@ class boss_blood_queen_lana_thel : public CreatureScript
|
|||||||
offtank->CastSpell(me->getVictim(), SPELL_BLOOD_MIRROR_DAMAGE, true);
|
offtank->CastSpell(me->getVictim(), SPELL_BLOOD_MIRROR_DAMAGE, true);
|
||||||
me->getVictim()->CastSpell(offtank, SPELL_BLOOD_MIRROR_DUMMY, true);
|
me->getVictim()->CastSpell(offtank, SPELL_BLOOD_MIRROR_DUMMY, true);
|
||||||
DoCastVictim(SPELL_BLOOD_MIRROR_VISUAL);
|
DoCastVictim(SPELL_BLOOD_MIRROR_VISUAL);
|
||||||
|
if (Item* shadowsEdge = offtank->GetWeaponForAttack(BASE_ATTACK, true))
|
||||||
|
if (!offtank->HasAura(SPELL_THIRST_QUENCHED) && shadowsEdge->GetEntry() == ITEM_SHADOW_S_EDGE && !offtank->HasAura(SPELL_GUSHING_WOUND))
|
||||||
|
offtank->CastSpell(offtank, SPELL_GUSHING_WOUND, true);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
events.ScheduleEvent(EVENT_BLOOD_MIRROR, 2500, EVENT_GROUP_CANCELLABLE);
|
events.ScheduleEvent(EVENT_BLOOD_MIRROR, 2500, EVENT_GROUP_CANCELLABLE);
|
||||||
@@ -436,8 +455,23 @@ class spell_blood_queen_vampiric_bite : public SpellScriptLoader
|
|||||||
spell = sSpellMgr.GetSpellForDifficultyFromSpell(spell, GetCaster());
|
spell = sSpellMgr.GetSpellForDifficultyFromSpell(spell, GetCaster());
|
||||||
GetCaster()->RemoveAura(spell->Id, 0, 0, AURA_REMOVE_BY_ENEMY_SPELL);
|
GetCaster()->RemoveAura(spell->Id, 0, 0, AURA_REMOVE_BY_ENEMY_SPELL);
|
||||||
GetCaster()->CastSpell(GetCaster(), SPELL_ESSENCE_OF_THE_BLOOD_QUEEN_PLR, true);
|
GetCaster()->CastSpell(GetCaster(), SPELL_ESSENCE_OF_THE_BLOOD_QUEEN_PLR, true);
|
||||||
|
// Presence of the Darkfallen buff on Blood-Queen
|
||||||
if (GetCaster()->GetMap()->IsHeroic())
|
if (GetCaster()->GetMap()->IsHeroic())
|
||||||
GetCaster()->CastSpell(GetCaster(), SPELL_PRESENCE_OF_THE_DARKFALLEN, true);
|
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 (InstanceScript* instance = GetCaster()->GetInstanceScript())
|
||||||
if (Creature* bloodQueen = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(DATA_BLOOD_QUEEN_LANA_THEL)))
|
if (Creature* bloodQueen = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(DATA_BLOOD_QUEEN_LANA_THEL)))
|
||||||
bloodQueen->AI()->SetGUID(GetHitUnit()->GetGUID(), GUID_VAMPIRE);
|
bloodQueen->AI()->SetGUID(GetHitUnit()->GetGUID(), GUID_VAMPIRE);
|
||||||
|
|||||||
@@ -73,7 +73,6 @@ enum eSpells
|
|||||||
SPELL_PLAGUE_SICKNESS = 70953,
|
SPELL_PLAGUE_SICKNESS = 70953,
|
||||||
SPELL_UNBOUND_PLAGUE_PROTECTION = 70955,
|
SPELL_UNBOUND_PLAGUE_PROTECTION = 70955,
|
||||||
SPELL_MUTATED_PLAGUE = 72451,
|
SPELL_MUTATED_PLAGUE = 72451,
|
||||||
SPELL_UNHOLY_INFUSION_CREDIT = 71518,
|
|
||||||
|
|
||||||
// Slime Puddle
|
// Slime Puddle
|
||||||
SPELL_GROW_STACKER = 70345,
|
SPELL_GROW_STACKER = 70345,
|
||||||
@@ -249,7 +248,6 @@ class boss_professor_putricide : public CreatureScript
|
|||||||
{
|
{
|
||||||
Talk(SAY_DEATH);
|
Talk(SAY_DEATH);
|
||||||
instance->SetBossState(DATA_PROFESSOR_PUTRICIDE, DONE);
|
instance->SetBossState(DATA_PROFESSOR_PUTRICIDE, DONE);
|
||||||
DoCastAOE(SPELL_UNHOLY_INFUSION_CREDIT, true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void JustSummoned(Creature* summon)
|
void JustSummoned(Creature* summon)
|
||||||
|
|||||||
Reference in New Issue
Block a user