Ejemplo n.º 1
0
 public bool RemovePlayer(TeamEntity entity, bool defalutGroup = true, byte index = 0)
 {
     if (defalutGroup)
     {
         return(mDefaultPlayerGroup.Remove(entity));
     }
     else
     {
         var group = mPlayers[index];
         return(group.Remove(entity));
     }
 }
Ejemplo n.º 2
0
 public bool RemoveEnemy(TeamEntity entity, bool defalutGroup = true, byte index = 0)
 {
     if (defalutGroup)
     {
         return(mDefaultEnemyGroup.Remove(entity));
     }
     else
     {
         var group = mEnemies[index];
         return(group.Remove(entity));
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// 计算出离我最近的玩家,当前返回第一个进入的玩家
        /// </summary>
        /// <param name="entity">敌方实体</param>
        /// <returns></returns>
        public TeamEntity GetNearestPlayer(TeamEntity entity)
        {
            var playerGroup = mPlayers[mDefaultIndex];
            var players     = playerGroup.Units();

            foreach (var player in players)
            {
                // todo calc
            }

            return(GetDefaultPlayer());
        }
Ejemplo n.º 4
0
 /// <summary>
 /// 添加一个玩家到 Team
 /// </summary>
 /// <param name="entity">新加入的玩家</param>
 /// <param name="defaultGroup">是否加入到默认组</param>
 /// <param name="index">非默认组的索引</param>
 /// <exception cref="BnyxTeamException">自定义Team异常</exception>
 public void AddNewPlayer(TeamEntity entity, bool defaultGroup = true, byte index = 0)
 {
     if (defaultGroup == true)
     {
         mDefaultPlayerGroup.Add(entity);
     }
     else
     {
         bool result = mPlayers.Exists(group => group.Name == mPlayers[index].Name);
         if (result == true)
         {
             mPlayers[index].Add(entity);
         }
         else
         {
             throw new BnyxTeamException("当前需要加入的玩家组不存在");
         }
     }
 }
Ejemplo n.º 5
0
 public void AddNewEnemy(TeamEntity entity, bool defaultGroup = true, byte index = 0)
 {
     if (defaultGroup == true)
     {
         mDefaultEnemyGroup.Add(entity);
     }
     else
     {
         bool result = mEnemies.Exists(group => group.Name == mEnemies[index].Name);
         if (result == true)
         {
             mEnemies[index].Add(entity);
         }
         else
         {
             throw new BnyxTeamException("当前需要加入的敌对组不存在");
         }
     }
 }
Ejemplo n.º 6
0
        /// <summary>
        /// 当有 AI 死亡的时候调用
        /// </summary>
        /// <param name="entity"></param>
        /// <exception cref="BnyxTargetException"></exception>
        public void OnDestroy(TeamEntity entity)
        {
            var enemy = mEnemies.ToList().Find(e => e.Ids == entity.Ids);

            if (enemy != null)
            {
                var hook = enemy.Hook;
                if (hook)
                {
                    enemy.Valid = false;
                    hook.OnDestroy1();
                    mTeam.RemoveEnemy(entity); // remove from team
                }
                else
                {
                    throw new BnyxTargetException($"当前的enemy:{entity.GameObj}没有挂载hook脚本");
                }
            }
            else
            {
                throw new BnyxTargetException($"没有找到当前的enemy数据");
            }
        }