function fc() { d('farm_cap').src='captcha.php?mode=4&hash='+hash(); d('farm_captcha').value=''; } function tc() { d('train_cap').src='captcha.php?mode=5&hash='+hash(); d('train_captcha').value=''; d('train_ucap').src='captcha.php?mode=6&hash='+hash(); d('train_ucaptcha').value=''; } function farmf() { var farms=Math.floor(inn('farm_xfarms').replace(/\,/gi,'')); var mills=Math.floor(inn('farm_xmills').replace(/\,/gi,'')); var farmers=Math.floor(inn('farm_xfarmers').replace(/\,/gi,'')); var land=Math.floor(inn('farm_xland').replace(/\,/gi,'')); var food=Math.floor(inn('farm_xfood').replace(/\,/gi,'')); var followers=Math.floor(inn('farm_xfollowers').replace(/\,/gi,'')); var ifarms=Math.abs(Math.floor(v('farm_bfarm'))); var imills=Math.abs(Math.floor(v('farm_bmill'))); var ifarmers=Math.abs(Math.floor(v('farm_bfarmer'))) * 1000; var ifoodb=0; var ifoods=Math.abs(Math.floor(v('farm_bfoods'))) * 10; var iland=Math.abs(Math.floor(v('farm_bland'))) * 5000; var totalcost = (tfarmcost(farms, ifarms) + tmillcost(mills, imills) + ifarmers + ifoodb) - (ifoods + iland); var left=cubbles-totalcost; var t; t=food - (ifoods / 10); d('farm_cfoods').innerHTML=((t>=0)?com(t):0); d('farm_cfoods').style.color='#'+((t>=0)?'0066':'FF00')+'00'; t=land - (iland / 5000) - farms; d('farm_cland').innerHTML=((t>=0)?com(t):0); d('farm_cland').style.color='#'+((t>=0)?'0066':'FF00')+'00'; d('farm_farm').innerHTML=com(farmcost(farms + ifarms)); d('farm_mill').innerHTML=com(millcost(mills + imills)); var arr=new Array('farm', 'mill', 'farmer'); if (left < 0) { d('farm_pc').innerHTML='Cost'; d('farm_cost').innerHTML='Too Much'; d('farm_cost').style.color='#FF0000'; h('farm_rem'); for (x in arr) { d('farm_c'+arr[x]).innerHTML=0; d('farm_c'+arr[x]).style.color='#FF0000'; } return; } for (x in arr) d('farm_c'+arr[x]).style.color='#006600'; d('farm_pc').innerHTML=(totalcost<0)?'Profit':'Cost'; d('farm_cost').innerHTML=com(Math.abs(totalcost)); d('farm_cost').style.color='#006600'; s('farm_rem'); d('farm_rem').innerHTML='(§'+com(left)+' remaining)'; //Solving the cubic equation for total cost of a Farm/Mill. My Favorite :) ... Not. var q = (-3/100 * (left + tfarmcost(farms, ifarms)) - Math.pow(farms,3) + (3/2)*Math.pow(farms,2) - (1/2) * farms); var u1 = Math.pow(-1/2 * q + Math.pow(Math.pow(q,2) / 4 + 1/1728,1/2),1/3); d('farm_cfarm').innerHTML=com(Math.floor(1 / (12 * u1) + u1 - farms + 1/2) - ifarms); q = (-3/200 * (left + tmillcost(mills, imills)) - Math.pow(mills,3) + (3/2)*Math.pow(mills,2) - (1/2) * mills); u1 = Math.pow(-1/2 * q + Math.pow(Math.pow(q,2) / 4 + 1/1728,1/2),1/3); d('farm_cmill').innerHTML=com(Math.floor(1 / (12 * u1) + u1 - mills + 1/2) - imills); d('farm_cfarmer').innerHTML=com(Math.min(Math.floor(left / 1000), followers-(ifarmers/1000))); d('farm_cfarmer').style.color='#'+(v('farm_bfarmer')>followers?'FF00':'0066')+'00'; } function millcost(m) { return 200*Math.pow(m,2); } function farmcost(f) { return 100*Math.pow(f,2); } function tfarmcost(n, x) { return 100 * Math.ceil(Math.pow(x,3)/3 + (n - 1/2) * Math.pow(x,2) + (Math.pow(n,2) - n + 1/6) * x); } function tmillcost(n, x) { return 200 * Math.ceil(Math.pow(x,3)/3 + (n - 1/2) * Math.pow(x,2) + (Math.pow(n,2) - n + 1/6) * x); } function fcalc(w, x) { d('farm_b'+w).value=Math.floor(v('farm_b'+w)) + Math.floor(x.replace(/\,/gi,'')); farmf(); } function farm() { if (Math.floor(v('farm_bland')) > 0 && !confirm('Are you sure you want to sell the Land? This cannot be undone.')) return 0; ajax('farm.php?cap='+v('farm_captcha')+'&buyfarms='+v('farm_bfarm')+'&buymills='+v('farm_bmill')+'&sellfood='+v('farm_bfoods')+'&farmers='+v('farm_bfarmer')+'&sellland='+v('farm_bland')); farmf(); } function tcalc(w,x) { d('train_t'+w).value=Math.floor(v('train_t'+w)) + Math.floor(x.replace(/\,/gi,'')); trainf(); } function utcalc(w,x) { d('train_ut'+w).value=Math.floor(v('train_ut'+w)) + Math.floor(x.replace(/\,/gi,'')); utrainf(); } function trainf() { var arr=new Array('soldier', 'guard', 'farmer', 'spy'); var cost=new Array(600, 600, 1000, 1500); var tcost=0,sum=0; for (var i=0; i Math.floor(inn('train_x'+arr[i]+'s').replace(/\,/gi,''))) { d('train_u'+arr[i]).style.color='#ff0000'; d('train_u'+arr[i]).innerHTML='0'; } else { d('train_u'+arr[i]).style.color='#006600'; d('train_u'+arr[i]).innerHTML=Math.floor(inn('train_x'+arr[i]+'s').replace(/\,/gi,'')) - Math.floor(v('train_ut'+arr[i])); } } } function train() { ajax('train.php?train=1&cap='+v('train_captcha')+'&soldiers='+v('train_tsoldier')+'&guards='+v('train_tguard')+'&farmers='+v('train_tfarmer')+'&spies='+v('train_tspy')); } function utrain() { ajax('train.php?untrain=1&cap='+v('train_ucaptcha')+'&soldiers='+v('train_utsoldier')+'&guards='+v('train_utguard')+'&farmers='+v('train_utfarmer')+'&spies='+v('train_utspy')); } function landf() { var now=Math.floor(inn('upg_ll').replace(/\,/gi,'')); var cur=Math.floor(Math.abs(v('upg_ln'))); var tmp=Math.floor(tlandcost(now, cur)); d('upg_llc').innerHTML=com(tmp); left=cubbles-tmp; var q = (-3/1000 * cubbles - Math.pow(now,3) + (3/2)*Math.pow(now,2) - (1/2) * now); var u1 = Math.pow(-1/2 * q + Math.pow(Math.pow(q,2) / 4 + 1/1728,1/2),1/3); d('upg_lcb').innerHTML=(left<0)?0:com(Math.floor(1 / (12 * u1) + u1 - now + 1/2) - cur); d('upg_lcb').style.color='#'+(left<0?'FF00':'0066')+'00'; d('upg_llc').style.color='#'+(left<0?'FF00':'0066')+'00'; } function tlandcost(n, x) { return 1000 * Math.ceil(Math.pow(x,3)/3 + (n - 1/2) * Math.pow(x,2) + (Math.pow(n,2) - n + 1/6) * x); } function weapsHeld() { var soldiers=Math.floor(inn('train_xsoldiers').replace(/\,/gi,'')); var guards=Math.floor(inn('train_xguards').replace(/\,/gi,'')); var spies=Math.floor(inn('train_xspys').replace(/\,/gi,'')); var followers=Math.floor(inn('train_xfollowers').replace(/\,/gi,'')); var iweap=hasWeapType(1); var sweap=hasWeapType(2); var inweap=hasWeapType(3); var ish=0, ifh=0, sgh=0, sfh=0, insh=0; if (iweap > 0) { if (iweap >= soldiers) { ish = soldiers; iweap-=soldiers; } else { ish = iweap; iweap = 0; } if (iweap >= followers) { ifh = followers; iweap -= followers; } else { ifh = iweap; iweap=0; } } if (sweap > 0) { if (sweap >= guards) { sgh = guards; sweap-=guards; } else { sgh = sweap; sweap = 0; } if (sweap >= followers) { sfh = followers; sweap -= followers; } else { sfh = sweap; sweap=0; } } if (inweap > 0) { if (inweap >= spies) { insh = spies; inweap-=spies; } else { insh = inweap; inweap = 0; } } d('train_ish').innerHTML=com(ish); d('train_ifh').innerHTML=com(ifh); d('train_iuh').innerHTML=com(iweap); d('train_sgh').innerHTML=com(sgh); d('train_sfh').innerHTML=com(sfh); d('train_suh').innerHTML=com(sweap); d('train_insh').innerHTML=com(insh); d('train_inuh').innerHTML=com(inweap); } function hasWeapType(wid) { var sum=0; for (var i = (6 * (wid - 1)); i<(6 * wid); i++) sum+=Math.floor(weaps[i+1]); return sum; }