Big update.

This commit is contained in:
UltraNix
2022-03-12 22:27:09 +01:00
parent b3d00ccb26
commit b952636f0d
843 changed files with 1534330 additions and 99 deletions

View File

@@ -0,0 +1,44 @@
/*
* Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU GPL v2 license, you may redistribute it and/or modify it under version 2 of the License, or (at your option), any later version.
*/
#include "PartyMemberToResurrect.h"
#include "Playerbots.h"
class IsTargetOfResurrectSpell : public SpellEntryPredicate
{
public:
bool Check(SpellInfo const* spellInfo) override
{
for (uint8 i = 0; i < 3; ++i)
{
if (spellInfo->Effects[i].Effect == SPELL_EFFECT_RESURRECT || spellInfo->Effects[i].Effect == SPELL_EFFECT_RESURRECT_NEW ||
spellInfo->Effects[i].Effect == SPELL_EFFECT_SELF_RESURRECT)
return true;
}
return false;
}
};
class FindDeadPlayer : public FindPlayerPredicate
{
public:
FindDeadPlayer(PartyMemberValue* value) : value(value) { }
bool Check(Unit* unit) override
{
Player* player = unit->ToPlayer();
return player && !player->isResurrectRequested() && player->getDeathState() == CORPSE && !value->IsTargetOfSpellCast(player, predicate);
}
private:
PartyMemberValue* value;
IsTargetOfResurrectSpell predicate;
};
Unit* PartyMemberToResurrect::Calculate()
{
FindDeadPlayer finder(this);
return FindPartyMember(finder);
}