View Javadoc

1   package de.jos.game.actions.permanent;
2   
3   import java.awt.Graphics2D;
4   
5   import com.golden.gamedev.GameObject;
6   
7   import de.jos.game.actions.ActionScrollInOut;
8   import de.jos.game.actions.LayerConstants;
9   import de.jos.game.actions.cleanup.CleanupActionNone;
10  import de.jos.game.actions.cleanup.CleanupInfiniteGameOverAction;
11  import de.jos.game.logic.AbstractGameBoard;
12  import de.jos.game.objects.Countdown;
13  
14  public class ActionCountdown extends AbstractPermanentAction implements SpecialEventPermanent {
15  
16    private Countdown countdown = new Countdown();
17  
18    private AbstractGameBoard gameBoard = null;
19  
20    private boolean gameOver = false;
21  
22    public ActionCountdown(AbstractGameBoard gameBoard) {
23      this.gameBoard = gameBoard;
24      setCleanupAction(new CleanupActionNone(null));
25    }
26  
27    public void init() {
28      super.init();
29      countdown.setSprite(getResourceContainer().getCountdownSprite());
30      countdown.getSprite().setBackground(getResourceContainer().getGameBackgroundImage());
31      countdown.init();
32    }
33  
34    public Integer getLayer() {
35      return LayerConstants.LAYER_1;
36    }
37  
38    public boolean isFinished() {
39      return false;
40    }
41  
42    public boolean isBlocking() {
43      return false;
44    }
45  
46    public void update(long elapsedTime, GameObject gameObject) {
47  
48      if (gameOver == false) {
49        if (countdown.isTimedOut() == true) {
50          ActionScrollInOut gameOverScroll = new ActionScrollInOut();
51          gameOverScroll.setResourceContainer(getResourceContainer());
52  
53          gameOverScroll.setText1(getString("text.scroller.timedOut", "!"));
54          gameOverScroll.setText2(getString("text.scroller.gameOver", "!"));
55          gameOverScroll.init();
56  
57          CleanupInfiniteGameOverAction cleanupAction = new CleanupInfiniteGameOverAction(getGameBoard());
58          gameOverScroll.setCleanupAction(cleanupAction);
59  
60          getNewSpecialEventList().add(gameOverScroll);
61  
62          gameOver = true;
63        } else {
64          countdown.update(elapsedTime);
65        }
66      }
67    }
68    
69    public void render(Graphics2D graphics, GameObject gameObject) {
70      getResourceContainer().getCountdownBackground().render(graphics);
71      countdown.getSprite().render(graphics);
72    }
73  
74    public AbstractGameBoard getGameBoard() {
75      return gameBoard;
76    }
77  
78    public void setTimeBonus(double timeBonus) {
79      countdown.setTimeBonus(timeBonus);
80    }
81    
82    public String getName() {
83      return this.getClass().getName();
84    }
85  
86  }