Last active
October 21, 2016 14:44
-
-
Save Purexo/9d3a9bd563aa55deb943eb6d7ec63803 to your computer and use it in GitHub Desktop.
UserScript for Candy Box 1. AutoSave and AutoQuest ^^
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name CandiBox 1 - AutoSave | |
// @namespace http://tampermonkey.net/ | |
// @version 0.1 | |
// @description try to take over the world! | |
// @author Purexo | |
// @require https://gist.githubusercontent.com/purexo/0d27aad481158047ae852dc10d779cd9/raw/bc931c67e74d5d9d9d205ea456bc52d64f94e124/SimpleEventManager.js | |
// @include http://candies.aniwey.net/* | |
// @grant none | |
// ==/UserScript== | |
/*jshint multistr: true */ | |
/* --- remove alert function --- */ | |
window.alert = function(message) { return true; }; | |
(function(window) { | |
'use strict'; | |
/* --- Auto UI --- */ | |
var UI = { | |
generate: function generate() { | |
var ui = $.parseHTML(` | |
<div class="auto-ui collapse"> | |
<span class="collapser">[+]</span> | |
<div class="container"> | |
<input type="checkbox" id="chk-auto-save"> <label for="chk-auto-save">Auto Save</label> <br /> | |
<input id="ipt-auto-save" type="range" min="1" max="30" value="5" step="1"/> <span id="auto-save-time">5</span> <br /> | |
<label for="ipt-auto-save">in minutes</label> <br /> | |
<input type="checkbox" id="chk-auto-quest"> <label for="chk-auto-quest">Auto Quests</label> | |
</div> | |
</div> | |
<style> | |
.auto-ui { | |
position: fixed; | |
top: 30px; | |
right: 5px; | |
overflow: hidden; | |
border: 1px solid black; | |
background: white; | |
} | |
.auto-ui.collapse { | |
height: 27px; | |
width: 29px; | |
} | |
.auto-ui .collapser { | |
float: right; | |
padding: 5px; | |
} | |
</style> | |
`); | |
$('body').append($(ui)); | |
}, | |
hide: function() { | |
$('.auto-ui').addClass('collapse'); | |
$('.auto-ui .collapser').text('[+]'); | |
}, | |
display: function() { | |
$('.auto-ui').removeClass('collapse'); | |
$('.auto-ui .collapser').text('[-]'); | |
}, | |
reverse: function() { | |
var _ = $('.auto-ui').hasClass('collapse') ? this.display(): this.hide(); | |
} | |
}; | |
UI.generate(); | |
$('.auto-ui .collapser').click(function() { | |
UI.reverse(); | |
}); | |
function loggedSave() { | |
console.log('Save at ' + new Date()); | |
save(); | |
} | |
var idAutoSave; | |
$('#chk-auto-save').click(function() { | |
idAutoSave = $(this).is(':checked') ? setInterval(loggedSave, 60000 * $('#ipt-auto-save').val()) : clearInterval(idAutoSave); | |
}); | |
$('#ipt-auto-save').on('change', function() { | |
$('#auto-save-time').text($(this).val()); | |
// actualyze auto save, yeah it's ugly :p | |
$('#chk-auto-save').click(); | |
$('#chk-auto-save').click(); | |
}); | |
$('#chk-auto-save, #chk-auto-quest').click(); | |
/* --- Event Loop --- */ | |
var $quest = $('#chk-auto-quest'); | |
var event = new SimpleEventManager(function(lastState) { | |
lastState.autoQuest = $quest.is(':checked'); | |
// auto-quest running | |
if (lastState.autoQuest && !quest.weAreQuestingRightNow && quest.tiredTime <= 0) { | |
this.emit('run-quest'); | |
} | |
}, 1000); // each seconds | |
/* --- Event Handler --- */ | |
event.on('run-quest', function() { | |
quest.begin(true); | |
}); | |
})(window); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment