[11084] Add dummy auras for spells 53790,53791,53792 and 41099,41100,41101

Note: two of them are still missing data for equipment.

Signed-off-by: NoFantasy <nofantasy@nf.no>
This commit is contained in:
NoFantasy 2011-01-30 16:48:07 +01:00
parent e3e6811740
commit f98a9e4eee
3 changed files with 148 additions and 1 deletions

View file

@ -2073,6 +2073,112 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
} }
case SPELLFAMILY_WARRIOR: case SPELLFAMILY_WARRIOR:
{ {
switch(GetId())
{
case 41099: // Battle Stance
{
if (target->GetTypeId() != TYPEID_UNIT)
return;
// Stance Cooldown
target->CastSpell(target, 41102, true, NULL, this);
// Battle Aura
target->CastSpell(target, 41106, true, NULL, this);
// equipment
target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, 32614);
target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, 0);
target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 2, 0);
return;
}
case 41100: // Berserker Stance
{
if (target->GetTypeId() != TYPEID_UNIT)
return;
// Stance Cooldown
target->CastSpell(target, 41102, true, NULL, this);
// Berserker Aura
target->CastSpell(target, 41107, true, NULL, this);
// equipment
target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, 32614);
target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, 0);
target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 2, 0);
return;
}
case 41101: // Defensive Stance
{
if (target->GetTypeId() != TYPEID_UNIT)
return;
// Stance Cooldown
target->CastSpell(target, 41102, true, NULL, this);
// Defensive Aura
target->CastSpell(target, 41105, true, NULL, this);
// equipment (unknown, but should be axe+shield)
//target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, 0);
//target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, 0);
//target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 2, 0);
return;
}
case 53790: // Defensive Stance
{
if (target->GetTypeId() != TYPEID_UNIT)
return;
// Stance Cooldown
target->CastSpell(target, 59526, true, NULL, this);
// Defensive Aura
target->CastSpell(target, 41105, true, NULL, this);
// equipment (need help here, item id not known)
//target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, 0);
//target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, 0);
//target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 2, 0);
return;
}
case 53791: // Berserker Stance
{
if (target->GetTypeId() != TYPEID_UNIT)
return;
// Stance Cooldown
target->CastSpell(target, 59526, true, NULL, this);
// Berserker Aura
target->CastSpell(target, 41107, true, NULL, this);
// equipment
target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, 43625);
target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, 43625);
target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 2, 0);
return;
}
case 53792: // Battle Stance
{
if (target->GetTypeId() != TYPEID_UNIT)
return;
// Stance Cooldown
target->CastSpell(target, 59526, true, NULL, this);
// Battle Aura
target->CastSpell(target, 41106, true, NULL, this);
// equipment
target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, 43623);
target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 1, 0);
target->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 2, 0);
return;
}
}
// Overpower // Overpower
if (GetSpellProto()->SpellFamilyFlags & UI64LIT(0x0000000000000004)) if (GetSpellProto()->SpellFamilyFlags & UI64LIT(0x0000000000000004))
{ {
@ -2255,6 +2361,24 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
target->CastSpell(target, 36731, true, NULL, this); target->CastSpell(target, 36731, true, NULL, this);
return; return;
} }
case 41099: // Battle Stance
{
// Battle Aura
target->RemoveAurasDueToSpell(41106);
return;
}
case 41100: // Berserker Stance
{
// Berserker Aura
target->RemoveAurasDueToSpell(41107);
return;
}
case 41101: // Defensive Stance
{
// Defensive Aura
target->RemoveAurasDueToSpell(41105);
return;
}
case 42517: // Beam to Zelfrax case 42517: // Beam to Zelfrax
{ {
// expecting target to be a dummy creature // expecting target to be a dummy creature
@ -2326,6 +2450,24 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
return; return;
} }
case 53790: // Defensive Stance
{
// Defensive Aura
target->RemoveAurasDueToSpell(41105);
return;
}
case 53791: // Berserker Stance
{
// Berserker Aura
target->RemoveAurasDueToSpell(41107);
return;
}
case 53792: // Battle Stance
{
// Battle Aura
target->RemoveAurasDueToSpell(41106);
return;
}
case 56511: // Towers of Certain Doom: Tower Bunny Smoke Flare Effect case 56511: // Towers of Certain Doom: Tower Bunny Smoke Flare Effect
{ {
// Towers of Certain Doom: Skorn Cannonfire // Towers of Certain Doom: Skorn Cannonfire

View file

@ -2034,6 +2034,11 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons
if ((spellInfo_1->SpellIconID == 456 && spellInfo_2->SpellIconID == 2006) || if ((spellInfo_1->SpellIconID == 456 && spellInfo_2->SpellIconID == 2006) ||
(spellInfo_2->SpellIconID == 456 && spellInfo_1->SpellIconID == 2006)) (spellInfo_2->SpellIconID == 456 && spellInfo_1->SpellIconID == 2006))
return false; return false;
// Defensive/Berserker/Battle stance aura can not stack (needed for dummy auras)
if (((spellInfo_1->SpellFamilyFlags & UI64LIT(0x800000)) && (spellInfo_2->SpellFamilyFlags & UI64LIT(0x800000))) ||
((spellInfo_2->SpellFamilyFlags & UI64LIT(0x800000)) && (spellInfo_1->SpellFamilyFlags & UI64LIT(0x800000))))
return true;
} }
// Hamstring -> Improved Hamstring (multi-family check) // Hamstring -> Improved Hamstring (multi-family check)

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "11083" #define REVISION_NR "11084"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__