View Javadoc

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      // zum cleanup bullet wieder auf das board setzen
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        // bullets vom board entfernen und in neue action einbringen
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  }