Skip to main content
Made a few changes for compatibility with the framework I'm using
Source Link

If it is just about combining the code, something like this should have the same result with only one loop.

private void combinedArc() {
    arc1.setActive(false);
    arc2.setActive(false);
    for (Enemy e : gs.getEnemies()) {
        intfloat distanceFromPlayer = e.distanceFromPlayer();
        if (!arc1.isActive() && distanceFromPlayer < 32 && !e.seen) {
            arc1.setActive(true);
        }
        if (!arc2.isActive() && distanceFromPlayer < 24) {
            arc2.setActive(true);
        }
        if (arc1.isActive() && arc2.isActive()) {
            return;
        }
    }    
}

If it is just about combining the code, something like this should have the same result with only one loop.

private void combinedArc() {
    arc1.setActive(false);
    arc2.setActive(false);
    for (Enemy e : gs.getEnemies()) {
        int distanceFromPlayer = e.distanceFromPlayer();
        if (!arc1.isActive && distanceFromPlayer < 32 && !e.seen) {
            arc1.setActive(true);
        }
        if (!arc2.isActive && distanceFromPlayer < 24) {
            arc2.setActive(true);
        }
        if (arc1.isActive && arc2.isActive) {
            return;
        }
    }    
}

If it is just about combining the code, something like this should have the same result with only one loop.

private void combinedArc() {
    arc1.setActive(false);
    arc2.setActive(false);
    for (Enemy e : gs.getEnemies()) {
        float distanceFromPlayer = e.distanceFromPlayer();
        if (!arc1.isActive() && distanceFromPlayer < 32 && !e.seen) {
            arc1.setActive(true);
        }
        if (!arc2.isActive() && distanceFromPlayer < 24) {
            arc2.setActive(true);
        }
        if (arc1.isActive() && arc2.isActive()) {
            return;
        }
    }    
}
added 3 characters in body
Source Link
Zibelas
  • 5k
  • 2
  • 15
  • 26

If it is just about combining the code, something like this should have the same result with only one loop.

private void combinedArc() {
    arc1.setActive(false);
    arc2.setActive(false);
    for (Enemy e : gs.getEnemies()) {
        ifint (distanceFromPlayer = e.distanceFromPlayer();
 < 32 &&     if (!earc1.seenisActive && distanceFromPlayer < 32 && !arc1e.isActiveseen) {
            arc1.setActive(true);
        }
        if (e!arc2.isActive && distanceFromPlayer() < 24 && !arc2.isActive) {
            arc2.setActive(true);
        }
        if (arc1.isActive && arc2.isActive) {
            return;
        }
    }    
}

If it is just about combining the code, something like this should have the same result with only one loop.

private void combinedArc() {
    arc1.setActive(false);
    arc2.setActive(false);
    for (Enemy e : gs.getEnemies()) {
        if (e.distanceFromPlayer() < 32 && !e.seen && !arc1.isActive) {
            arc1.setActive(true);
        }
        if (e.distanceFromPlayer() < 24 && !arc2.isActive) {
            arc2.setActive(true);
        }
        if (arc1.isActive && arc2.isActive) {
            return;
        }
    }    
}

If it is just about combining the code, something like this should have the same result with only one loop.

private void combinedArc() {
    arc1.setActive(false);
    arc2.setActive(false);
    for (Enemy e : gs.getEnemies()) {
        int distanceFromPlayer = e.distanceFromPlayer();
        if (!arc1.isActive && distanceFromPlayer < 32 && !e.seen) {
            arc1.setActive(true);
        }
        if (!arc2.isActive && distanceFromPlayer < 24) {
            arc2.setActive(true);
        }
        if (arc1.isActive && arc2.isActive) {
            return;
        }
    }    
}
Source Link
Zibelas
  • 5k
  • 2
  • 15
  • 26

If it is just about combining the code, something like this should have the same result with only one loop.

private void combinedArc() {
    arc1.setActive(false);
    arc2.setActive(false);
    for (Enemy e : gs.getEnemies()) {
        if (e.distanceFromPlayer() < 32 && !e.seen && !arc1.isActive) {
            arc1.setActive(true);
        }
        if (e.distanceFromPlayer() < 24 && !arc2.isActive) {
            arc2.setActive(true);
        }
        if (arc1.isActive && arc2.isActive) {
            return;
        }
    }    
}