Pilgred Progress Simulator
Simulates Pilgred progress advancement in the game Mush.
by Sanjito Kurniawan
HTML
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.2/css/bootstrap.min.css">
<div class='container'>
<div class='row'>
<div class='col-xs-6 col-xs-offset-3'>
<hr/>
<h4>Pilgred Progress Simulator</h4>
<hr/>
<div class='ahem'>
<span class='current'>0</span><span class='percent'>%</span>
<br/>+<span class='last'>0</span>
</div>
<hr/>
<div class='center'>
<div class="btn-group half">
<button type="button" class="btn btn-sm btn-primary advance">Advance!</button>
<button type="button" class="btn btn-sm btn-warning reset">Reset!</button>
</div>
<br/>
<div class="btn-group one-third efficiency">
<button type="button" class="btn btn-sm btn-danger low">low</button>
<button type="button" class="btn btn-sm btn-info rand active">random</button>
<button type="button" class="btn btn-sm btn-success high">high</button>
</div>
<br/>
<div class="btn-group half skills">
<button type="button" class="btn btn-sm btn-default technician">Technician</button>
<button type="button" class="btn btn-sm btn-default physicist">Physicist</button>
</div>
</div>
<hr/>
Saturation/Streak Level: <span class='saturation'>0</span>
<br/>Resetter AP used: <span class='ap-resetter'>0</span>
<br/>Tech+Physician AP used: <span class='ap-physandtech'>0</span>
<br/>Tech/Physician AP used: <span class='ap-physortech'>0</span>
<br/>Random Person AP used: <span class='ap-uselessguy'>0</span>
</div>
</div>
</div>
SCSS
.current {
font-size: 52px;
line-height: 36px;
cursor: pointer;
}
.percent {
font-size: 18px;
line-height: 36px;
}
.fin {
color: #00cc00;
}
.ahem {
width: 100%;
text-align: center;
}
.center {
text-align: center;
}
.half {
width: 100%;
> button {
width: 50%;
}
}
.one-third {
width: auto;
> button {
text-transform: capitalize;
}
}
.container {
width: 550px;
}
JavaScript
// Preset Values
var eff = {};
eff.and = {};
eff.or = {};
eff.and.high = [13, 10, 7, 4, 1];
eff.and.low = [9, 7, 5, 3, 1];
eff.or.high = [7, 4, 1];
eff.or.low = [5, 3, 1];
// App Variables
var efficiency = 'random';
var lastskills = {};
var technician = physicist = lastskills.technician = lastskills.physicist = reset = false;
var cur = '';
var i = saturation = progress = last = 0;
var ap = {};
ap.resetter = ap.physandtech = ap.physortech = ap.uselessguy = 0;
var debug = true;
// Utility Functions
function log(msg, content) {
if ( debug ) {
i++;
msg = "Debug Log #"+i+" | "+msg;
if ( typeof content != "undefined" ) {
msg = msg + ": " + content;
}
console.log(msg);
}
}
function disable(elem) {
jQuery(elem).attr("disabled", "disabled");
}
function enable(elem) {
jQuery(elem).removeAttr("disabled");
}
// Main Things
function checkSaturation() {
if ( lastskills.physicist && lastskills.technician ) {
if ( saturation >= 5 ) {
disable(".advance");
} else {
enable(".advance");
}
} else if ( lastskills.physicist || lastskills.technician ) {
if ( saturation >= 3 ) {
disable(".advance");
} else {
enable(".advance");
}
} else {
if ( saturation >= 1 ) {
disable(".advance");
} else {
enable(".advance");
}
}
}
// Update Numbers
function update() {
if( progress >= 100 ) {
jQuery(".current").addClass("fin");
progress = 100;
}
jQuery(".current").html(progress);
jQuery(".last").html(last);
jQuery(".saturation").html(saturation);
jQuery(".ap-resetter").html(ap.resetter);
jQuery(".ap-physandtech").html(ap.physandtech);
jQuery(".ap-physortech").html(ap.physortech);
jQuery(".ap-uselessguy").html(ap.uselessguy);
}
// Reset!
jQuery(".current").click( function() {
...