示例#1
0
文件: CM.cs 项目: 741645596/batgame
    /// <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));
    }
示例#2
0
文件: CM.cs 项目: 741645596/batgame
 /// <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);
         }
     }
 }