Add missing Hyper Mode pieces

Some code was missing from the Hyper Mode feature addition. This
completes the use of `Engine.setTimeout` and adds doubleTime check in
button cooldowns.

Closes #374
This commit is contained in:
Blake Grotewold
2015-05-10 18:14:13 -04:00
parent 9cb94cb9c0
commit 7fd474d3c0
3 changed files with 20 additions and 15 deletions
+17 -12
View File
@@ -7,12 +7,12 @@ var Button = {
if(typeof options.click == 'function') {
this.data_handler = options.click;
}
var el = $('<div>')
.attr('id', typeof(options.id) != 'undefined' ? options.id : "BTN_" + Engine.getGuid())
.addClass('button')
.text(typeof(options.text) != 'undefined' ? options.text : "button")
.click(function() {
.click(function() {
if(!$(this).hasClass('disabled')) {
Button.cooldown($(this));
$(this).data("handler")($(this));
@@ -21,9 +21,9 @@ var Button = {
.data("handler", typeof options.click == 'function' ? options.click : function() { Engine.log("click"); })
.data("remaining", 0)
.data("cooldown", typeof options.cooldown == 'number' ? options.cooldown : 0);
el.append($("<div>").addClass('cooldown'));
if(options.cost) {
var ttPos = options.ttPos ? options.ttPos : "bottom right";
var costTooltip = $('<div>').addClass('tooltip ' + ttPos);
@@ -35,14 +35,14 @@ var Button = {
costTooltip.appendTo(el);
}
}
if(options.width) {
el.css('width', options.width);
}
return el;
},
setDisabled: function(btn, disabled) {
if(btn) {
if(!disabled && !btn.data('onCooldown')) {
@@ -53,18 +53,23 @@ var Button = {
btn.data('disabled', disabled);
}
},
isDisabled: function(btn) {
if(btn) {
return btn.data('disabled') === true;
}
return false;
},
cooldown: function(btn) {
var cd = btn.data("cooldown");
if(cd > 0) {
$('div.cooldown', btn).stop(true, true).width("100%").animate({width: '0%'}, cd * 1000, 'linear', function() {
milliseconds = cd * 1000;
if (Engine.options.doubleTime){
milliseconds /= 2;
}
$('div.cooldown', btn).stop(true, true).width("100%").animate({width: '0%'}, milliseconds, 'linear', function() {
var b = $(this).closest('.button');
b.data('onCooldown', false);
if(!b.data('disabled')) {
@@ -75,7 +80,7 @@ var Button = {
btn.data('onCooldown', true);
}
},
clearCooldown: function(btn) {
$('div.cooldown', btn).stop(true, true);
btn.data('onCooldown', false);
@@ -83,4 +88,4 @@ var Button = {
btn.removeClass('disabled');
}
}
};
};
+2 -2
View File
@@ -121,7 +121,7 @@
onChoose: function () {
DropboxConnector.log('Save to slot ' + n + ' initiated');
// timeout prevents error due to fade out animation of the previous event
window.setTimeout(function () {
Engine.setTimeout(function () {
DropboxConnector.log('Save to slot ' + n);
DropboxConnector.saveGameToDropbox(n, DropboxConnector.savedtoDropboxEvent);
}, 1000);
@@ -150,7 +150,7 @@
onChoose: function () {
DropboxConnector.log('Load from slot ' + n + ' initiated');
// timeout prevents error due to fade out animation of the previous event
window.setTimeout(function () {
Engine.setTimeout(function () {
DropboxConnector.log('Load from slot ' + n);
DropboxConnector.loadGameFromDropbox(n);
}, 1000);
+1 -1
View File
@@ -371,7 +371,7 @@ var StateManager = {
if(changed){
$SM.fireUpdate('income', true);
}
Engine._incomeTimeout = setTimeout($SM.collectIncome, 1000);
Engine._incomeTimeout = Engine.setTimeout($SM.collectIncome, 1000);
},
//Thieves