![]() |
AzerothCore 3.3.5a
OpenSource WoW Emulator
|
#include "CreatureGroups.h"
Public Types | |
| typedef std::map< Creature *, FormationInfo > | CreatureGroupMemberType |
Public Member Functions | |
| CreatureGroup (uint32 id) | |
| ~CreatureGroup () | |
| Creature * | GetLeader () const |
| uint32 | GetId () const |
| bool | IsEmpty () const |
| bool | IsFormed () const |
| const CreatureGroupMemberType & | GetMembers () const |
| void | AddMember (Creature *member) |
| void | RemoveMember (Creature *member) |
| void | FormationReset (bool dismiss, bool initMotionMaster) |
| void | LeaderStartedMoving () |
| bool | CanLeaderStartMoving () const |
| void | RemoveFormationMovement () |
| void | MemberEngagingTarget (Creature *member, Unit *target) |
| Unit * | GetNewTargetForMember (Creature *member) |
| void | MemberEvaded (Creature *member) |
| void | DespawnFormation (Milliseconds timeToDespawn=0ms, Seconds forcedRespawnTimer=0s) |
| void | RespawnFormation (bool force=false) |
| bool | IsFormationInCombat () |
| bool | IsAnyMemberAlive (bool ignoreLeader=false) |
Private Attributes | |
| Creature * | m_leader |
| CreatureGroupMemberType | m_members |
| uint32 | m_groupID |
| bool | m_Formed |
| typedef std::map<Creature*, FormationInfo> CreatureGroup::CreatureGroupMemberType |
|
inlineexplicit |
|
inline |
| void CreatureGroup::AddMember | ( | Creature * | member | ) |
References Object::GetGUID(), Creature::GetSpawnId(), LOG_DEBUG, m_groupID, m_leader, m_members, Creature::SetFormation(), sFormationMgr, and ObjectGuid::ToString().
Referenced by FormationMgr::AddCreatureToGroup().
| bool CreatureGroup::CanLeaderStartMoving | ( | ) | const |
References Unit::IsAlive(), m_leader, and m_members.
Referenced by RandomMovementGenerator< T >::_setRandomLocation(), and Creature::IsFormationLeaderMoveAllowed().
| void CreatureGroup::DespawnFormation | ( | Milliseconds | timeToDespawn = 0ms, |
| Seconds | forcedRespawnTimer = 0s |
||
| ) |
| void CreatureGroup::FormationReset | ( | bool | dismiss, |
| bool | initMotionMaster | ||
| ) |
References Object::GetGUID(), Unit::GetMotionMaster(), GROUP_AI_FLAG_FOLLOW_LEADER, Unit::IsAlive(), LOG_DEBUG, m_Formed, m_leader, m_members, MOTION_SLOT_IDLE, MotionMaster::MoveIdle(), MotionMaster::MovementExpiredOnSlot(), and ObjectGuid::ToString().
Referenced by Creature::Motion_Initialize(), and Creature::setDeathState().
|
inline |
References m_groupID.
Referenced by npc_commandscript::HandleNpcAddFormationCommand(), and FormationMgr::RemoveCreatureFromGroup().
|
inline |
References m_leader.
Referenced by RandomMovementGenerator< T >::_setRandomLocation(), Creature::IsFormationLeader(), Creature::IsUpdateNeeded(), Creature::Motion_Initialize(), instance_azjol_nerub::instance_azjol_nerub_InstanceScript::OnUnitDeath(), Creature::setDeathState(), and Creature::SignalFormationMovement().
|
inline |
References Creature::GetSpawnId(), Unit::GetVictim(), GROUP_AI_FLAG_ACQUIRE_NEW_TARGET_ON_EVADE, GROUP_AI_FLAG_LEADER_ASSIST_MEMBER, GROUP_AI_FLAG_MEMBER_ASSIST_LEADER, Unit::IsAlive(), Unit::IsValidAttackTarget(), m_leader, m_members, and sFormationMgr.
| bool CreatureGroup::IsAnyMemberAlive | ( | bool | ignoreLeader = false | ) |
References m_leader, and m_members.
Referenced by instance_azjol_nerub::instance_azjol_nerub_InstanceScript::OnUnitDeath().
|
inline |
| bool CreatureGroup::IsFormationInCombat | ( | ) |
|
inline |
| void CreatureGroup::LeaderStartedMoving | ( | ) |
References FormationInfo::follow_angle, FormationInfo::follow_dist, Unit::GetMotionMaster(), Unit::GetVictim(), GROUP_AI_FLAG_FOLLOW_LEADER, FormationInfo::HasGroupFlag(), Unit::HasUnitFlag(), Unit::HasUnitState(), Unit::IsAlive(), Unit::isPossessed(), m_leader, m_members, MotionMaster::MoveFormation(), FormationInfo::point_1, FormationInfo::point_2, UNIT_FLAG_PLAYER_CONTROLLED, UNIT_STATE_FOLLOW_MOVE, and UNIT_STATE_NOT_MOVE.
Referenced by RandomMovementGenerator< T >::_setRandomLocation(), Creature::Motion_Initialize(), and Creature::SignalFormationMovement().
References Unit::EngageWithTarget(), Creature::GetSpawnId(), Unit::GetVictim(), GROUP_AI_FLAG_LEADER_ASSIST_MEMBER, GROUP_AI_FLAG_MEMBER_ASSIST_LEADER, Unit::IsAlive(), Unit::IsValidAttackTarget(), m_leader, m_members, and sFormationMgr.
| void CreatureGroup::MemberEvaded | ( | Creature * | member | ) |
References Creature::AI(), Creature::GetSpawnId(), GROUP_AI_FLAG_DONT_RESPAWN_LEADER_ON_EVADE, GROUP_AI_FLAG_EVADE_MASK, GROUP_AI_FLAG_EVADE_TOGETHER, Unit::IsAIEnabled, Unit::IsAlive(), Unit::IsInCombat(), Creature::IsInEvadeMode(), m_leader, m_members, Creature::Respawn(), and sFormationMgr.
| void CreatureGroup::RemoveFormationMovement | ( | ) |
References FORMATION_MOTION_TYPE, Unit::GetMotionMaster(), MotionMaster::GetMotionSlotType(), m_leader, m_members, MOTION_SLOT_IDLE, and MotionMaster::MovementExpiredOnSlot().
Referenced by RemoveMember().
| void CreatureGroup::RemoveMember | ( | Creature * | member | ) |
References m_leader, m_members, RemoveFormationMovement(), and Creature::SetFormation().
Referenced by FormationMgr::RemoveCreatureFromGroup().
| void CreatureGroup::RespawnFormation | ( | bool | force = false | ) |
References m_members.
Referenced by boss_krik_thir::boss_krik_thirAI::Reset().
|
private |
Referenced by FormationReset(), and IsFormed().
|
private |
Referenced by AddMember(), and GetId().
|
private |
|
private |
Referenced by AddMember(), CanLeaderStartMoving(), DespawnFormation(), FormationReset(), GetMembers(), GetNewTargetForMember(), IsAnyMemberAlive(), IsEmpty(), IsFormationInCombat(), LeaderStartedMoving(), MemberEngagingTarget(), MemberEvaded(), RemoveFormationMovement(), RemoveMember(), and RespawnFormation().