Пример #1
0
 public static void enemyDead(Position pos) {
   for (Enemy en : enList) {
     if (en.getPosition().getRow() == pos.getRow()
         && en.getPosition().getColumn() == pos.getColumn()) {
       en.declareDead();
     }
   }
 }
  @Override
  public ArrayList<Position> getEnemiesPositions() {
    ArrayList<Position> positions = new ArrayList<Position>();
    for (Enemy enemy : enemyList) {
      positions.add(enemy.getPosition());
    }

    return positions;
  }
  public void addEnemy(Position position) {
    boolean positionAlreadyUsed = false;
    for (Enemy enemy : enemyList) {
      if (enemy.getPosition().equals(position)) {
        positionAlreadyUsed = true;
        enemyList.remove(enemy);
        break;
      }
    }

    if (!positionAlreadyUsed)
      enemyList.add(new Enemy(new Position(position.getX(), position.getY()), Direction.UP));
  }
Пример #4
0
  @Override
  public void onScannedRobot(ScannedRobotEvent event) {

    info = new EnemyInfo(en, getTime());
    Enemy enemy = enemies.get(event.getName());

    if (enemy == null) {
      enemy = new Enemy(event, this);
      enemies.put(enemy.getName(), enemy);
      storages.put(enemy.getName(), new VisitCountStorage());
    }

    if (getTime() - enemy.getLastUpdated() < Costants.TIME_THRESHOLD
        && (enemy.getEnergy() - event.getEnergy()) > 0.
        && (enemy.getEnergy() - event.getEnergy()) < 3.1) {

      GBulletFiredEvent gBulletFiredEvent = new GBulletFiredEvent();
      gBulletFiredEvent.setFiringRobot(enemy);
      gBulletFiredEvent.setEnergy(enemy.getEnergy() - event.getEnergy());
      gBulletFiredEvent.setVelocity(20 - 3 * (enemy.getEnergy() - event.getEnergy()));
      gBulletFiredEvent.setFiringTime(getTime() - 1);
      gBulletFiredEvent.setFiringPosition(enemy.getPosition()); // TODO this or the updated one?
      gBulletFiredEvent.setTargetPosition(new Point2D.Double(getX(), getY()));
      org.pattern.utils.Utils.setWaveMAE(gBulletFiredEvent, getHeading(), getVelocity(), this);
      waves.addWave(gBulletFiredEvent);
    }

    enemy.updateEnemy(event, this);
    enemies.put(enemy.getName(), enemy);

    if (!meleeRadar) {
      Double radarTurn = getHeading() - getRadarHeading() + enemy.getBearing();
      setTurnRadarRight(Utils.normalRelativeAngleDegrees(radarTurn));
    }

    doShooting();
  }