//自动 private HeroActionState AutoAction(List <BattleAction> heroActions) { //搜索敌人 //如果存在可以攻击的目标 //将会选定目标 以及 要移动到的位置(格子) TargetSearchResult searchResult = SearchTarget(heroActions); switch (searchResult) { //需要移动 case TargetSearchResult.NeedMove: //先移动 MoveToTargetGrid(heroActions, targetBattleUnit, targetGrid, toTargetPath.ToArray()); //移动后判断是否可以攻击 if (CheckUnderAttackRadius()) { UseSkill(heroActions, targetBattleUnit, 0); } break; //在攻击范围内 case TargetSearchResult.InRange: UseSkill(heroActions, targetBattleUnit, 0); break; //战斗结束 case TargetSearchResult.Inexistence: if (battleField.CheckBattleEnd()) { return(HeroActionState.BattleEnd); } else { return(HeroActionState.Warn); } default: break; } if (battleField.CheckBattleEnd()) { return(HeroActionState.BattleEnd); } else { return(HeroActionState.Normal); } }
//自动 private HeroActionState AutoAction(BattleUnitAction battleUnitAction) { //自动选择目标 AutoSelectTarget(battleUnitAction); //找不到目标单位,这个就很奇怪了... if (targetBattleUnit == null && battleUnitAction != null) { battleUnitAction.warningAction = BattleUnitWarningAction.Get(); battleUnitAction.warningAction.logWarning = "No target:" + battleUnitID; return(HeroActionState.Warn); } //需要移动 if (battleUnitAction != null && toTargetPath.Count > 0) { MoveToTargetGrid(battleUnitAction, targetBattleUnit, toTargetPath[toTargetPath.Count - 1], toTargetPath.ToArray()); } //自动搓招儿 AutoUseSkill(battleUnitAction); //战斗结束判断 if (battleField.CheckBattleEnd()) { return(HeroActionState.BattleEnd); } else { return(HeroActionState.Normal); } }