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)); }
@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(); }