Ejemplo n.º 1
0
  /** @return all the units in the game state */
  public List<Unit> getUnits() {
    List<Unit> units = new ArrayList<Unit>();
    Lane[] lanes = map.getLanes();
    for (Lane l : lanes) {
      Wave[] waves = l.getWaves();
      for (Wave w : waves) {
        Unit[] us = w.getUnits();
        for (Unit u : us) {
          units.add(u);
        }
      }
    }

    Collections.sort(
        units,
        new Comparator<Unit>() {

          @Override
          public int compare(Unit o1, Unit o2) {
            if (o1.getCollisionStrategy() instanceof Ground
                && o2.getCollisionStrategy() instanceof Flying) return -1;
            else if (o2.getCollisionStrategy() instanceof Ground
                && o1.getCollisionStrategy() instanceof Flying) return 1;
            else return 0;
          }
        });

    return units;
  }