/// <summary> /// 满足地图空间条件判断 /// </summary> /// <param name="SearchInfo">搜索条件</param> /// <param name="Self">目标对象</param> /// <param name="Target">对象</param> /// <returns>true 满足条件,false 不满足条件</returns> private static bool CheckMapConditions(SearchTarageInfo SearchInfo, Life Self, Life Target) { if (Target == null) { return(false); } if (Self == null) { return(false); } if (SearchInfo == null) { return(false); } return(SearchInfo.CheckConditions(Self, Target)); }
/// <summary> /// 按条件搜索lifeM /// </summary> /// <param name="HaveList">不为空,则在这个列表中进行搜索,为空在所有CM管理的列表中进行搜索</param> /// <param name="Type">lifem 类型,支持位组合</param> /// <param name="Camp">按指定的阵营,支持组合</param> /// <param name="Target">参考目标,同层,圆形,球形搜索方式需要</param> /// <param name="SearchInfo">搜索参数</param> /// <returns>返回搜索列表list</returns> public static void SearchLifeMList(ref List <Life> list, List <Life> HaveList, LifeMType Type, LifeMCamp Camp, Life Self, SearchTarageInfo SearchInfo) { if (list == null) { list = new List <Life> (); } else { list.Clear(); } //cm 中获取列表 if (HaveList == null || HaveList.Count == 0) { List <SceneSoldier> l = GetLifeMList(Type); if (l != null) { foreach (SceneSoldier s in l) { if (s == null) { continue; } LifeMCore Core = s.m_Core; Life life = s.m_Life; if (CheckCoreConditions(Core, Camp) == false) { continue; } if (CheckMapConditions(SearchInfo, Self, life) == false) { continue; } list.Add(life); } } } else //have list 中进行过滤 { foreach (Life life in HaveList) { if (life == null) { continue; } LifeMCore Core = life.m_Core; if (CheckCoreConditions(Core, Type, Camp) == false) { continue; } if (CheckMapConditions(SearchInfo, Self, life) == false) { continue; } list.Add(life); } } }