You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

60 lines
1.4 KiB

package playground;
import gameobjects.GameObject;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
/**
* extends {@link SpaceInvadersLevel} with 10 enemies that need two shots each to be destroyed.
*
*/
public class LevelHitTwice extends SpaceInvadersLevel {
/** constant defining the number of shots needed to destroy an enemy */
public static final int MAX_HITS = 2;
private static Logger logger = LogManager.getLogger(LevelHitTwice.class);
/** constructor setting internal name to 'hitTwice' */
public LevelHitTwice() {
super();
this.level = "hitTwice";
}
@Override
protected String getStartupMessage() {
return "2 shots at alien required!!!";
}
@Override
protected int calcNrEnemies() {
return 10;
}
@Override
void actionIfEnemyIsHit(GameObject e, GameObject shot) {
Object counterFlag = e.getOrCreateObjectFlag("counter", Integer.valueOf(1));
int counter = (Integer) counterFlag;
if (counter >= MAX_HITS) {
logger.trace("enemy was hit before for " + counter + " times, which is above "
+ LevelHitTwice.MAX_HITS);
super.actionIfEnemyIsHit(e, shot);
} else {
logger.trace("enemy was hit before for "+counter+" times, which is below "+LevelHitTwice.MAX_HITS);
e.setObjectFlag("counter", Integer.valueOf(counter + 1));
}
deleteObject(shot.getId());
}
}