Example #1
0
 public void clearEnemies(Array<Enemy> enemiesToSave) {
   // Removing all enemies from lists
   for (Iterator<Enemy> it = enemies.iterator(); it.hasNext(); ) {
     Enemy e = it.next();
     if (!(e instanceof EnemyVirus) && !(enemiesToSave.contains(e, false))) {
       e.hit(e.getLife());
       entities.removeValue(e, true);
       it.remove();
     }
   }
 }
Example #2
0
  public void enemyHit(Enemy e) {
    if (e.getLife() <= 0) {
      gameMode.enemyKilled(e);

      cs.activate(enemies.size);

      enemiesKilled++;
      oss.spawn(
          e.getX(), e.getY(), e.getDx() * Enemy.getSlowdown(), e.getDy() * Enemy.getSlowdown(), 2);

      Camera.shake(0.3f, 0.1f);

      if (isSoundEnabled()) killSound.play(0.75f, (float) (1 + Math.random() / 3 - 0.16), 0);
    }
  }
Example #3
0
  public void updateHitDetections() {
    // Checking if any bullet hit an enemy
    for (Bullet b : bullets) {
      for (Enemy e : enemies) {
        if (e.hasSpawned() && e.getLife() > 0) {
          // Custom hitdetection for the worm
          // It just uses the parts as they were enemies
          if (e instanceof EnemyWorm) {
            for (EnemyWorm.Part p : ((EnemyWorm) e).getParts()) {
              if ((b.getX() - p.getX()) * (b.getX() - p.getX())
                      + (b.getY() - p.getY()) * (b.getY() - p.getY())
                  < p.getOuterRadius() * p.getOuterRadius() + b.getWidth() * b.getWidth() * 4) {
                p.hit(Bullet.damage);
                b.hit();

                // Adding a small camerashake
                Camera.shake(0.1f, 0.05f);

                // Rewarding player depending on game mode
                enemyHit(e);
                break;
              }
            }
          } else if ((b.getX() - e.getX()) * (b.getX() - e.getX())
                  + (b.getY() - e.getY()) * (b.getY() - e.getY())
              < e.getOuterRadius() * e.getOuterRadius() + b.getWidth() * b.getWidth() * 4) {

            e.hit(Bullet.damage);
            b.hit();

            // Rewarding player depending on game mode
            enemyHit(e);
            break;
          }
        }
      }
    }
  }