From 7fd474d3c0a96cc40088cdf13f0030c3c2573a74 Mon Sep 17 00:00:00 2001 From: Blake Grotewold Date: Sun, 10 May 2015 18:14:13 -0400 Subject: [PATCH] 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 --- script/Button.js | 29 +++++++++++++++++------------ script/dropbox.js | 4 ++-- script/state_manager.js | 2 +- 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/script/Button.js b/script/Button.js index b0e80c1..845c690 100644 --- a/script/Button.js +++ b/script/Button.js @@ -7,12 +7,12 @@ var Button = { if(typeof options.click == 'function') { this.data_handler = options.click; } - + var el = $('
') .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($("
").addClass('cooldown')); - + if(options.cost) { var ttPos = options.ttPos ? options.ttPos : "bottom right"; var costTooltip = $('
').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'); } } -}; \ No newline at end of file +}; diff --git a/script/dropbox.js b/script/dropbox.js index 82f4d72..95d7c91 100644 --- a/script/dropbox.js +++ b/script/dropbox.js @@ -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); diff --git a/script/state_manager.js b/script/state_manager.js index c42b5c5..2c4590f 100644 --- a/script/state_manager.js +++ b/script/state_manager.js @@ -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