Skip to content

Instantly share code, notes, and snippets.

@trashtoy
Created August 20, 2014 12:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save trashtoy/ec70fefbf1639a5592e3 to your computer and use it in GitHub Desktop.
Save trashtoy/ec70fefbf1639a5592e3 to your computer and use it in GitHub Desktop.
Automatic onigiri management
/*
* 1. Open http://baseballmgr.herokuapp.com/
* 2. Execute this code by F12 console
*/
var Hack = {
noMoreRation : false,
status : {},
recruit : function() {
$("div[ng-click='manager.buy()']").click();
},
fire : function() {
$(".managers i")[0].click();
},
buy : function() {
var status = Hack.status;
var amount = status.fund < 1000000 ? "60000" : "1000000";
$("div[ng-click='rice.buy(" + amount + ")']").click();
},
getStatus : function() {
var items = $(".item");
return {
fund : Hack.parseItem(items[4]),
ration : Hack.parseItem(items[0]),
managers : Hack.parseItem(items[1]),
force : Hack.parseItem(items[3]),
managerCost : Hack.parseItem($("div[ng-click='manager.buy()']")[0])
};
},
parseItem : function(e) {
return parseInt(e.textContent.replace(/[^0-9]+/g, ""));
},
checkRationToBuy1 : function() {
var status = Hack.status;
var ration = status.ration;
var fund = status.fund;
if (ration == 0) {
return true;
}
return (fund < status.force * 2);
},
checkRationToBuy2 : function() {
if (Hack.noMoreRation) {
return false;
}
var status = Hack.status;
var bales = Math.min(7, Math.floor(status.fund / 50000000));
return status.ration < (bales * 150000) + status.force * 2;
},
checkFire : function() {
var status = Hack.status;
var first = $(".managers i.first").length;
var second = $(".managers i.second").length;
var third = $(".managers i.third").length;
var upper = second + third;
if (first == 0 && 0 < upper && status.managers < 16 && 90000000 < status.fund) {
return true;
}
if (0 < third && third * 4 < (first + second)) {
return true;
}
if (0 < upper && upper * 4 < first) {
return true;
}
return false;
},
checkRecruit : function() {
var status = Hack.status;
var managers = status.managers;
if (managers == 0) {
return true;
}
if (20 < managers) {
return false;
}
var extra = (managers < 5) ? 1 : 0;
if (status.force <= (managers - extra) * 10) {
return false;
}
return (status.managerCost * 4 < status.fund);
},
action : function() {
var status = Hack.getStatus();
Hack.status = status;
if (Hack.checkRationToBuy1()) {
return Hack.buy();
}
if (Hack.checkRecruit()) {
return Hack.checkFire() ? Hack.fire() : Hack.recruit();
}
if (Hack.checkRationToBuy2()) {
if (1000000 < status.ration) {
Hack.noMoreRation = true;
return;
}
return Hack.buy();
}
},
start : function() {
if (!Hack.thread) {
Hack.thread = setInterval(Hack.action, 500);
}
},
stop : function() {
if (Hack.thread) {
clearTimeout(Hack.thread);
Hack.thread = null;
}
},
thread : null
};
Hack.start();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment