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)); } }
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)); } }
/// <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()); }
/// <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("当前需要加入的玩家组不存在"); } } }
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("当前需要加入的敌对组不存在"); } } }
/// <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数据"); } }