packages feed

battleships-1.0.0: templates/replay.julius

var step = 0;
var intervalID;
var intervalDuration = 1000; // milliseconds
var paused = false;

function updateStep(f) {
    oldStep = step;
    newStep = f(step);
    if(newStep < 0 || newStep >= numSteps)
      return;
    $("#humanboard" + oldStep).hide();
    $("#humanboard" + newStep).show();
    $("#aiboard" + oldStep).hide();
    $("#aiboard" + newStep).show();
    step = newStep
    updatePauseButton();
}

function animationStep() {
    if(!paused)
        updateStep(function(s) { return s + 1; });
}

function updatePauseButton() {
    if(step == numSteps - 1) {
        paused = true;
        $("#pause").text(#{toJSON $ messageRender MsgRestartButtonLabel});
    } else {
        if(paused)
          $("#pause").text(#{toJSON $ messageRender MsgUnpauseButtonLabel});
        else
          $("#pause").text(#{toJSON $ messageRender MsgPauseButtonLabel});
    }
}

function handlePause() {
    if(step == numSteps - 1) {
        paused = false;
        updateStep(function(s) { return 0; })
    } else {
        paused = !paused;
        updatePauseButton();
    }
}

$(function() {
    intervalID = setInterval(animationStep, intervalDuration)
    updatePauseButton();
    $("#first").click(function(event) {
        paused = true;
        updateStep(function(s) { return 0; })
    })
    $("#prev").click(function(event) {
        paused = true;
        updateStep(function(s) { return s - 1; });
    });
    $("#pause").click(handlePause)
    $("#next").click(function(event) {
        paused = true;
        updateStep(function(s) { return s + 1; });
    });
    $("#last").click(function(event) {
        paused = true;
        updateStep(function(s) { return (numSteps - 1); })
    })
});