public bool HasCombatNpcAlive() { bool result = false; for (LinkedListNode <NpcInfo> linkNode = m_Npcs.FirstValue; null != linkNode; linkNode = linkNode.Next) { NpcInfo npc = linkNode.Value; if (null != npc && npc.IsCombatNpc() && !npc.IsDead()) { result = true; break; } } return(result); }
public NpcInfo GetNearest(Vector3 pos, ref float minPowDist) { NpcInfo result = null; float powDist = 0.0f; for (LinkedListNode <NpcInfo> linkNode = m_Npcs.FirstValue; null != linkNode; linkNode = linkNode.Next) { NpcInfo npc = linkNode.Value; if (null != npc && npc.IsCombatNpc()) { powDist = Geometry.DistanceSquare(pos, npc.GetMovementStateInfo().GetPosition3D()); if (minPowDist > powDist) { result = npc; minPowDist = powDist; } } } return(result); }