Пример #1
0
 public void initEnemy() {
   List<Map<String, Object>> lst =
       gameDao.getSimpleJdbcTemplate().queryForList(RelationDAO.SQL_SELECT_ENEMY, player.getId());
   for (Map<String, Object> map : lst) {
     Enemy enemy = gameDao.getRelationDAO().loadEnemy(map);
     if (enemy != null) {
       emyMgr.put(enemy.getEnemyId(), enemy);
     }
   }
 }
Пример #2
0
 private void findClosestEnemyFromMeAndDP() {
   // Liste des enemies avec leur DP le plus proche
   Map<Enemy, DataPoint> enemyDataPoint = new HashMap<Enemy, DataPoint>();
   for (Enemy en : enemyList) {
     enemyDataPoint.put(en, findClosestDPForEnemy(en));
   }
   // On a vise un enemy avant, doit-on continuer sur celui-la
   if (targettedEnemy != null && enemyList.contains(targettedEnemy)) {
     System.err.println("keep the same enemy");
     hasToShoot = true;
   } else {
     Collections.sort(enemyList, new EnemyCloserThanDPComparator());
     Enemy en = enemyList.get(0);
     DataPoint dp = enemyDataPoint.get(en);
     int turnNumberBeforeEnemyReachData = getLeftTurnNumberBeforeEnemyReachData(en, dp);
     int turnNumberBeforeEnemyDie = getTurnToKillEnemyInThisPosition(en, dp);
     boolean test =
         testCoordsWithEnemyPrevision(
             getXCoordsCloser(en.getCoordX(), en.getCoordY()),
             getYCoordsCloser(en.getCoordX(), en.getCoordY()));
     System.err.println("Can i get closer " + test);
     System.err.println("Turn to reach data " + turnNumberBeforeEnemyReachData);
     System.err.println("Turn to kill in this pos " + turnNumberBeforeEnemyDie);
     // Si on  peut  le tuer avant qu'il atteigne sa cible et qu'on ne peut pas se rapprocher
     if (turnNumberBeforeEnemyDie == turnNumberBeforeEnemyReachData
         || (enoughDamageToKillInOneShootNextTurn(en, dp) || test == false)) {
       hasToShoot = true;
       targettedEnemy = en.getEnemyId();
     } else {
       if (test == true) {
         coordXToMove = getXCoordsCloser(en.getCoordX(), en.getCoordY());
         coordYToMove = getYCoordsCloser(en.getCoordX(), en.getCoordY());
         hasToShoot = false;
         additionnalText = "I 'm getting closer !";
         System.err.println("Move to get closer from him");
       } else {
         avoidEnemy(en);
         hasToShoot = false;
       }
     }
   }
 }