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.
|
|
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()); }
}
|