예제 #1
0
  /**
   * Tests that the swarm trigger of spawning only when the prior swarms reaches a certain death
   * ratio is working.
   */
  public void testUpdate_withDeadRatioTrigger() {
    MockEnemyShip enemy1 = enemyStockpile.take(MockEnemyShip.class);
    MockEnemyShip enemy2 = enemyStockpile.take(MockEnemyShip.class);
    MockEnemyShip enemy3 = enemyStockpile.take(MockEnemyShip.class);
    enemy1.active = true;
    enemy2.active = true;
    enemy3.active = true;

    priorSwarm.triggered = true;
    priorSwarm.spawnedShips.add(enemy1);
    priorSwarm.spawnedShips.add(enemy2);
    priorSwarm.spawnedShips.add(enemy3);

    swarm.priorSwarm = priorSwarm;
    swarm.triggerType = Swarm.TRIGGER_AFTER_LAST_DEAD_RATIO;
    swarm.triggerDeadRatio = .5f;

    // Test whent they are all still alive
    swarm.update(0);
    assertFalse(swarm.triggered);

    // Kill one
    enemy1.kill();
    swarm.update(0);
    assertFalse(swarm.triggered);

    // Kill the second one, this should put the dead over the ratio.
    enemy2.kill();
    swarm.update(0);
    assertTrue(swarm.triggered);
  }