public void MemberEngagingTarget(Creature member, Unit target)
        {
            GroupAIFlags groupAI = (GroupAIFlags)FormationMgr.CreatureGroupMap[member.GetSpawnId()].groupAI;

            if (groupAI == 0)
            {
                return;
            }

            if (member == m_leader)
            {
                if (!groupAI.HasAnyFlag(GroupAIFlags.MembersAssistLeader))
                {
                    return;
                }
            }
            else if (!groupAI.HasAnyFlag(GroupAIFlags.LeaderAssistsMember))
            {
                return;
            }

            foreach (var pair in m_members)
            {
                Creature other = pair.Key;

                // Skip self
                if (other == member)
                {
                    continue;
                }

                if (!other.IsAlive())
                {
                    continue;
                }

                if (((other != m_leader && groupAI.HasAnyFlag(GroupAIFlags.MembersAssistLeader)) || (other == m_leader && groupAI.HasAnyFlag(GroupAIFlags.LeaderAssistsMember))) && other.IsValidAttackTarget(target))
                {
                    other.EngageWithTarget(target);
                }
            }
        }