/// <summary> /// 攻撃目標を取得する /// </summary> /// <param name="pattern"></param> /// <returns></returns> public UnitBaseController GetTargetUnitForMove(TargetUnitDetectionPattern pattern) { // 条件判定 switch (pattern) { case TargetUnitDetectionPattern.Near: break; case TargetUnitDetectionPattern.Far: break; case TargetUnitDetectionPattern.LowestHp: break; case TargetUnitDetectionPattern.HighestHp: break; case TargetUnitDetectionPattern.Player: return(UnitManager.Instance.playerController); case TargetUnitDetectionPattern.Hero: return(UnitManager.Instance.heroController); case TargetUnitDetectionPattern.OtherUnit: break; default: break; } return(null); }
/// <summary> /// ユニットを対象にパス検索を行う /// </summary> public void DoRequestPathFinding(TargetUnitDetectionPattern pattern) { UnitBaseController target; // 仮 target = UnitManager.Instance.heroController; switch (pattern) { case TargetUnitDetectionPattern.Near: break; case TargetUnitDetectionPattern.Far: break; case TargetUnitDetectionPattern.LowestHp: break; case TargetUnitDetectionPattern.HighestHp: break; case TargetUnitDetectionPattern.Player: target = UnitManager.Instance.playerController; break; case TargetUnitDetectionPattern.Hero: target = UnitManager.Instance.heroController; break; case TargetUnitDetectionPattern.OtherUnit: break; default: break; } DoRequestPathFinding(target.GetCharacterMovement().currentGridPosition); }
/// <summary> /// 敵のリストから、攻撃すべき敵を返す /// </summary> /// <param name="enemyUnits"></param> /// <param name="pattern"></param> /// <returns></returns> public UnitBaseController SelectAttackEnemy(List <UnitBaseController> enemyUnits, TargetUnitDetectionPattern pattern) { if (enemyUnits.Count <= 0) { return(null); } for (int i = 0; i < enemyUnits.Count; i++) { // Todo ひとまずPlayerかHeroのみ switch (pattern) { case TargetUnitDetectionPattern.Near: break; case TargetUnitDetectionPattern.Far: break; case TargetUnitDetectionPattern.LowestHp: break; case TargetUnitDetectionPattern.HighestHp: break; case TargetUnitDetectionPattern.Player: if (enemyUnits[i] == UnitManager.Instance.playerController) { return(enemyUnits[i]); } break; case TargetUnitDetectionPattern.Hero: if (enemyUnits[i] == UnitManager.Instance.heroController) { return(enemyUnits[i]); } break; case TargetUnitDetectionPattern.OtherUnit: break; default: break; } } return(enemyUnits[0]); }