Esempio n. 1
0
 private boolean validePathPicked() {
   List<Point> path = unit.getMoveBehavior().getPath();
   if (path == null) {
     return true;
   }
   Point lastPointPath = path.get(path.size() - 1);
   if (AStarMoveBehavior.getManhattanDistance(unit.getPos(), attackedUnit.getPos())
       <= (AStarMoveBehavior.getManhattanDistance(lastPointPath, attackedUnit.getPos()))) {
     return false;
   }
   return true;
 }
Esempio n. 2
0
 private void findAndAttackNearbyEnemy() {
   Unit candidatUnit = null;
   for (Unit curUnit : rtsWorld.getUnits()) {
     if (curUnit.getPlayer() != unit.getPlayer()) {
       if (AStarMoveBehavior.getManhattanDistance(unit.getPos(), curUnit.getPos())
               < getFindEnemyDistance()
           && (candidatUnit == null
               || AStarMoveBehavior.getManhattanDistance(unit.getPos(), curUnit.getPos())
                   < AStarMoveBehavior.getManhattanDistance(
                       unit.getPos(), candidatUnit.getPos()))) {
         candidatUnit = curUnit;
       }
       /*     if (getEuclideDistance(unit.getPos(), curUnit.getPos()) < getFindEnemyDistance()
               && (candidatUnit == null || getEuclideDistance(unit.getPos(), curUnit.getPos()) < (getEuclideDistance(unit.getPos(), candidatUnit.getPos())))) {
           candidatUnit = curUnit;
       }*/
     }
   }
   if (candidatUnit != null) attackedUnit = candidatUnit;
 }