Exemplo n.º 1
0
  @Override
  public void init() {
    super.addShotTimerColumn(TARGET_COL_NAME, TARGET_COL_WIDTH);

    addTargets(shootTargets, "targets/shoot_dont_shoot/shoot.target");
    addTargets(dontShootTargets, "targets/shoot_dont_shoot/dont_shoot.target");
    super.showTextOnFeed("missed targets: 0\nbad hits: 0");

    executorService.schedule(new NewRound(), ROUND_DURATION, TimeUnit.SECONDS);
  }
Exemplo n.º 2
0
  private void removeTarget(List<Target> targets, TargetRegion region) {
    Iterator<Target> it = targets.iterator();

    while (it.hasNext()) {
      Target target = it.next();

      if (target.getTargetGroup().getChildren().contains(region)) {
        super.removeTarget(target);
        it.remove();
        return;
      }
    }
  }
Exemplo n.º 3
0
  @Override
  public void reset(List<Group> targets) {
    continueExercise = false;
    executorService.shutdownNow();

    missedTargets = 0;
    badHits = 0;

    for (Target target : shootTargets) super.removeTarget(target);
    shootTargets.clear();
    for (Target target : dontShootTargets) super.removeTarget(target);
    dontShootTargets.clear();

    addTargets(shootTargets, "targets/shoot_dont_shoot/shoot.target");
    addTargets(dontShootTargets, "targets/shoot_dont_shoot/dont_shoot.target");

    super.showTextOnFeed("missed targets: 0\nbad hits: 0");

    continueExercise = true;

    executorService = Executors.newScheduledThreadPool(CORE_POOL_SIZE);
    executorService.schedule(new NewRound(), ROUND_DURATION, TimeUnit.SECONDS);
  }
Exemplo n.º 4
0
  @Override
  public void shotListener(Shot shot, Optional<TargetRegion> hitRegion) {
    if (hitRegion.isPresent()) {
      if (hitRegion.get().tagExists("subtarget")) {
        switch (hitRegion.get().getTag("subtarget")) {
          case "shoot":
            {
              removeTarget(shootTargets, hitRegion.get());
              super.setShotTimerColumnText(TARGET_COL_NAME, "shoot");
            }
            break;

          case "dont_shoot":
            {
              removeTarget(dontShootTargets, hitRegion.get());
              badHits++;
              super.setShotTimerColumnText(TARGET_COL_NAME, "dont_shoot");
              TextToSpeech.say("Bad shoot!");
            }
            break;
        }
      }
    }
  }
Exemplo n.º 5
0
 @Override
 public void destroy() {
   super.destroy();
   executorService.shutdownNow();
   continueExercise = false;
 }