コード例 #1
0
public class Score extends Action {

  static final String SCORE_VARIABLE = "score";

  private Context ctx = GeoQuestApp.getContext();

  @Override
  protected boolean checkInitialization() {
    boolean initOK = true;
    initOK &= params.containsKey("value");
    return initOK;
  }

  @Override
  public void execute() {
    if (!Variables.isDefined(SCORE_VARIABLE)) {
      Variables.setValue(SCORE_VARIABLE, 0);
    }
    int deltaScore = Integer.parseInt(params.get("value"));
    int resultingScore = addToScore(deltaScore);
    if (resultingScore == 0) {
      GeoQuestApp.showMessage(ctx.getText(R.string.scoreZero));
    } else if (deltaScore > 0) {
      // GeoQuestApp.playAudio(ResourceManager.POSITIVE_SOUND, false);
      GeoQuestApp.showMessage(ctx.getText(R.string.scoreIncreasedBy) + " " + deltaScore);
    } else if (deltaScore < 0) {
      // GeoQuestApp.playAudio(ResourceManager.NEGATIVE_SOUND, false);
      GeoQuestApp.showMessage(ctx.getText(R.string.scoreDecreasedBy) + " " + (-deltaScore));
    }
  }

  private int addToScore(int score) {
    int resultScore = (Integer) Variables.getValue(SCORE_VARIABLE) + score;
    if (resultScore < 0) resultScore = 0;
    Variables.setValue(SCORE_VARIABLE, resultScore);
    return resultScore;
  }
}