1 package de.jos.game.actions.cleanup;
2
3 import java.util.List;
4
5 import org.apache.commons.logging.Log;
6 import org.apache.commons.logging.LogFactory;
7
8 import de.jos.game.logic.AbstractGameBoard;
9 import de.jos.game.logic.NInARowValidator;
10 import de.jos.game.objects.Bullet;
11
12 public abstract class CleanupActionAbstractBulletMoving extends AbstractCleanupAction {
13
14 private static Log log = LogFactory.getLog(CleanupActionAbstractBulletMoving.class);
15
16 private Bullet bullet = null;
17
18 public CleanupActionAbstractBulletMoving(AbstractGameBoard board, Bullet bullet) {
19 super(board);
20 this.bullet = bullet;
21 }
22
23 public void cleanup() {
24
25 getGameBoard().setBullet(bullet.getBoardX(), bullet.getBoardY(), bullet);
26
27 NInARowValidator validator = getResourceContainer().getNInARowValidator();
28
29 List<Bullet> dissolveBulletList = validator.checkNInARow(getGameBoard().getBoard());
30 if (dissolveBulletList != null) {
31 StringBuilder sb = new StringBuilder();
32
33
34 sb.append("Bullets : [");
35 for (Bullet tmpBullet : dissolveBulletList) {
36 getGameBoard().removeBullet(tmpBullet.getBoardX(), tmpBullet.getBoardY());
37 sb.append("[" + tmpBullet.getBoardX() + "/" + tmpBullet.getBoardY() + "]");
38 }
39 sb.append("]");
40 log.debug(sb.toString());
41 }
42
43 cleanupSpecific(dissolveBulletList);
44 }
45
46 public abstract void cleanupSpecific(List<Bullet> dissolveBulletList);
47
48 }