Merge branch 'azerothcore:master' into Playerbot

This commit is contained in:
ZhengPeiRu21
2022-09-28 17:09:45 -06:00
committed by GitHub
17 changed files with 563 additions and 11 deletions

View File

@@ -406,13 +406,16 @@ bool CreatureGroup::IsFormationInCombat()
return false;
}
bool CreatureGroup::IsAnyMemberAlive()
bool CreatureGroup::IsAnyMemberAlive(bool ignoreLeader /*= false*/)
{
for (auto const& itr : m_members)
{
if (itr.first && itr.first->IsAlive())
{
return true;
if (!ignoreLeader || itr.first != m_leader)
{
return true;
}
}
}

View File

@@ -111,7 +111,7 @@ public:
void MemberEvaded(Creature* member);
void RespawnFormation(bool force = false);
[[nodiscard]] bool IsFormationInCombat();
[[nodiscard]] bool IsAnyMemberAlive();
[[nodiscard]] bool IsAnyMemberAlive(bool ignoreLeader = false);
private:
Creature* m_leader; //Important do not forget sometimes to work with pointers instead synonims :D:D

View File

@@ -1800,6 +1800,7 @@ void Aura::HandleAuraSpecificMods(AuraApplication const* aurApp, Unit* caster, b
switch (GetId())
{
case 47788: // Guardian Spirit
{
if (removeMode != AURA_REMOVE_BY_EXPIRE)
break;
if (caster->GetTypeId() != TYPEID_PLAYER)
@@ -1821,6 +1822,15 @@ void Aura::HandleAuraSpecificMods(AuraApplication const* aurApp, Unit* caster, b
player->SendDirectMessage(&data);
}
break;
}
case 47585: // Dispersion (fixed bug invisible as a Shadow Priest)
{
if (target->IsMounted())
{
target->CastSpell(target, 53444, true);
}
break;
}
}
break;
case SPELLFAMILY_ROGUE:

View File

@@ -4391,12 +4391,24 @@ void SpellMgr::LoadSpellInfoCorrections()
spellInfo->SpellFamilyName = SPELLFAMILY_POTION;
});
// Refocus (Renataki's charm of beasts)
ApplySpellFix({ 24531 }, [](SpellInfo* spellInfo)
{
spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_UNIT_CASTER);
});
// Collect Rookery Egg
ApplySpellFix({ 15958 }, [](SpellInfo* spellInfo)
{
spellInfo->Effects[EFFECT_1].Effect = 0;
});
// WotLK Prologue Frozen Shade Visual, temp used to restore visual after Dispersion
ApplySpellFix({ 53444 }, [](SpellInfo* spellInfo)
{
spellInfo->DurationEntry = sSpellDurationStore.LookupEntry(27);
});
for (uint32 i = 0; i < GetSpellInfoStoreSize(); ++i)
{
SpellInfo* spellInfo = mSpellInfoMap[i];