Advertisement
Guest User

Untitled

a guest
Jan 21st, 2017
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.07 KB | None | 0 0
  1. javascript:var GLOBAL_VILLAGES=[{owner:"Blinder Rache",name:"Atentie",farmsLimit:20,x:487,y:480,troops:{lance:{total:212},cav_usoara:{total:35}}},{owner:"Zenyt",name:"Sat mare",farmsLimit:18,x:494,y:478,troops:{lance:{total:178},topor:{total:302}}}],GLOBAL_FARMS=[{x:503,y:481},{x:503,y:480},{x:504,y:476},{x:502,y:471},{x:502,y:470},{x:495,y:479},{x:492,y:477},{x:491,y:491},{x:494,y:489},{x:486,y:475},{x:485,y:476},{x:488,y:477},{x:487,y:478},{x:485,y:481},{x:480,y:481},{x:481,y:482},{x:482,y:483},{x:481,y:484},{x:482,y:484},{x:486,y:483},{x:485,y:486},{x:486,y:487},{x:480,y:487},{x:483,y:488},{x:485,y:489},{x:485,y:490},{x:484,y:490},{x:483,y:490},{x:478,y:489},{x:493,y:486},{x:494,y:485},{x:495,y:484},{x:495,y:482},{x:497,y:481},{x:491,y:476},{x:501,y:481},{x:501,y:482},{x:481,y:488},{x:480,y:490},{x:489,y:481},{x:492,y:482},{x:493,y:482},{x:493,y:481},{x:493,y:480},{x:496,y:480},{x:492,y:476},{x:493,y:476},{x:492,y:473},{x:497,y:474},{x:499,y:474},{x:500,y:475},{x:495,y:470},{x:498,y:470},{x:500,y:470},{x:491,y:489},{x:487,y:493}];!function(){var a,b={POLL_TIMOUT:100,WAIT_TIMEOUT:5e3,TROOP_SELECTORS:{lance:"spear",spada:"sword",topor:"axe",arc:"archer",cav_usoara:"light_cavalry",arcas_calare:"mounted_archer"},TROOPS_CAPACITY:{lance:25,spada:15,arc:10,topor:20,cav_usoara:50,arcas_calare:50}},c={wait:function(a,c){c=c||b.WAIT_TIMEOUT;var d,e,f=function(c){d||(e=a(),e?setTimeout(function(){c(e)},100):setTimeout(function(){f(c)},b.POLL_TIMOUT))};return new Promise(function(a,b){f(a),setTimeout(b,c)}).catch(function(){d=!0})},waitTime:function(a){return function(){return new Promise(function(b,c){setTimeout(b,a)})}}},d={openReportsWindow:function(){return $("#report-button").click(),c.wait(function(){return $(".reports-inner-border li.list-item .report-symbol").length})},openReport:function(a){return a.find(".report-text").click(),c.wait(function(){return $(".twx-window.report .win-main .box-paper .scroll-wrap").length})},jumpToAttackerVillageFromReport:function(){return $('[ng-click^="jumpToVillage("]:eq(0)').click(),c.wait(function(){return $("#context-menu").isVisible()})},attackAgainFromReport:function(){return $('[ng-click="attackAgain()"').click(),c.wait(function(){return $('.modal-custom-army [ng-click="closeWindow()"]').length})},selectVillageFromContextMenu:function(){var a=$('[tooltip-content="Stabileşte Satul activ"]');return a.isVisible()&&a.click(),!0},sendArmyFromContextMenu:function(){var a=$('[tooltip-content="Trimite Armata"]');return a.isVisible()&&a.click(),c.wait(function(){return $('.modal-custom-army [ng-click="closeWindow()"]').length})},attackFromArmyModal:function(a){return function(){var b=$('[ng-show="character.getSelectedVillage().getX() && !villageSwitchInProgress"').html().replace(/[()]/g,"").split("|"),c=parseInt(b[0]),d=parseInt(b[1]);if("any"!==a&&(a.x!==c||a.y!==d))return!1;var e=$("[ng-click=\"sendArmy('attack')\"]:not(.btn-grey)");if(e.length){var g=f.getTravelTimeFromAttackModal();return e.click(),g}return!1}},fillAttackModalWithTroops:function(a,c){return function(){$('[range-slider-name="'+b.TROOP_SELECTORS[a]+'"]').parents("li").find("input:not(.ng-hide)").val(c).trigger("change")}},openWorldSearch:function(){return $("#world-map-search-wrapper .directive-world-map-search").isVisible()||$('[ng-click="toggleWorldMapSearch($event)"]').click(),c.wait(function(){return $("#world-map-search-wrapper .directive-world-map-search").isVisible()})},searchCoords:function(a,b){return function(){$('[ng-model="coordinates.x"]').val(a).trigger("change"),$('[ng-model="coordinates.y"]').val(b).trigger("change")}},jumpToCoords:function(){return $('[ng-click="jumpTo(coordinates)"]').click(),c.wait(function(){return $("#context-menu").isVisible()})},closeWindow:function(){var a=$(".twx-window:last");return a.find('[ng-click="closeWindow()"]').click(),c.wait(function(){return!a.isVisible()})},closeArmyModal:function(){return $('.modal-custom-army [ng-click="closeWindow()"]').click(),c.wait(function(){return!$('.modal-custom-army [ng-click="closeWindow()"]').length})}},f={filterFarmReports:function(a){return a.filter(function(a){var b=$(a),c=!!b.find(".bg-no-casualties").length,d=!!b.find('[ng-if="report.haul === HAUL_TYPES.PARTIAL"]').length,e=!!b.find('[ng-if="report.haul === HAUL_TYPES.FULL"]').length,f=!!b.find(".unread-icon").length;return f&&c&&(d||e)})},getTravelTimeFromAttackModal:function(){var a=$(".time:eq(0) .new").html(),b=a.split(":"),c=60*b[0]*60+60*b[1]+1*b[2];return c}},h={},i=!1,k=function(b){if(!i){i=!0,console.log("Processing Queue!",new Date);var e=Object.keys(h).filter(function(a){return h[a].origin.owner===b});console.log(e);var f=function(){var b=e.shift(),g=h[b].origin,i=h[b].farms,j=function(){if(console.log("[ END ] Processing Village",b,new Date),e.length)return f()};return console.log("[START] Processing Village",b,new Date),h[b].farms=[],i.length?d.openWorldSearch().then(d.searchCoords(g.x,g.y)).then(d.jumpToCoords).then(d.selectVillageFromContextMenu).then(function(){var e=function(){var f=i.shift();if(f)return console.log("\t[START] Consuming Village",f.x+"|"+f.y,new Date),d.openWorldSearch().then(d.searchCoords(f.x,f.y)).then(d.jumpToCoords).then(d.sendArmyFromContextMenu).then(d.fillAttackModalWithTroops(f.troop,f.amount)).then(c.waitTime(50)).then(d.attackFromArmyModal(g)).then(function(c){if(c){c+=1,console.log("\t\tNext attack in: ",c),setTimeout(function(){h[b].farms.push(f)},1e3*c);var d=a('.counter[id="'+b+'"]');d&&d.text(parseInt(d.text())+1)}else setTimeout(function(){h[b].farms.push(f)},3e5)}).then(c.waitTime(700)).then(d.closeArmyModal).then(c.waitTime(200)).then(function(){return console.log("\t[ END ] Consuming Village",f.x+"|"+f.y,new Date),e()})};return e()}).then(j):(console.log("nothing HERE"),console.log("[ END ] Processing Village",b,new Date),Promise.resolve().then(j))};f().then(function(){console.log("Processing has finished!",new Date),i=!1,setTimeout(function(){k(b)},1e4)})}},l=function(a,b,c,d){return Math.sqrt(Math.pow(a-c,2)+Math.pow(b-d,2))},m=function(a){a.farms=a.farms.map(function(b){return b.dist=l(a.origin.x,a.origin.y,b.x,b.y),b}).sort(function(a,b){return a.dist-b.dist})},p=function(a,c,d){var e=[],f=Object.keys(d).filter(function(a){return d[a].origin.farmsLimit});return c.forEach(function(a){a.meanDistance=f.reduce(function(b,c){var e=d[c],g=l(a.x,a.y,e.origin.x,e.origin.y);return b+g/f.length},0)}),c.sort(function(a,b){return-a.meanDistance+b.meanDistance}),c=c.slice(-1*a.reduce(function(a,b){return a+b.farmsLimit},0)),c.forEach(function(a){var b,c;f.forEach(function(e){var f=d[e],g=l(a.x,a.y,f.origin.x,f.origin.y);f.farms.length<f.origin.farmsLimit&&(!b||g<c)&&(b=f,c=g)}),b?(a.name=a.x+"-"+a.y,a.dist=c,a.assignedVillage=b.origin.name,b.farms.push(a)):e.push(a)}),e.length&&console.log("The following farms have been rejected, nobody can farm them :(",e),f.forEach(function(a){m(d[a])}),f.forEach(function(a){var c=d[a],e=c.origin.troops,f=Object.keys(e).reduce(function(a,c){return a+b.TROOPS_CAPACITY[c]*e[c].total},0),g=0;Object.keys(e).forEach(function(a){var d=b.TROOPS_CAPACITY[a]*e[a].total/f,h=Math.round(d*c.farms.length),i=Math.floor(e[a].total/h/2);for(e[a]={total:e[a].total,ratio:d,numberOfVillages:h,troopsPerAttack:i},j=0;j<h;j++)c.farms[g].troop=a,c.farms[g++].amount=i})}),d};!function(){var b=document.createElement("script");b.type="text/javascript",b.crossorigin="anonymous",b.src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js",document.body.appendChild(b),c.wait(function(){return window.jQuery}).then(function(){console.log(jQuery),a=jQuery.noConflict(),q()})}();var h={},q=function(){var b=prompt("Enter player name (Zenyt OR Blinder Rache)");GLOBAL_VILLAGES.forEach(function(a){var b=a.name||a.x+"|"+a.y;h[b]={origin:a,farms:[]}});var c=a("<div />").css({position:"absolute","z-index":999,padding:"0 15px 10px","background-color":"#2a410c",border:"2px solid #405625","border-radius":"0 0 50px 50px",left:"50%",transform:"translate(-50%, 0)",top:"2px",margin:"auto","text-align":"center",overflow:"hidden",transition:"transform 0.5s ease-out",opacity:.8}),d=a("<div />"),e=a("<button> Start</button>").on("click",function(){p(GLOBAL_VILLAGES,GLOBAL_FARMS,h),n(),k(b)}),f=function(){return a('<div class="village"/>').css({float:"left","text-align":"right",margin:"0 5px"})},g=function(b){return a("<span>"+b+" </span>")},i=function(b){var c=a("<forma></forma>").css({display:"block","margin-bottom":"10px"}),d=b.farmsLimit,e=a('<input name="farmsLimit" value="'+d+'"></input>').css({width:"40px"});return c.append(a("<label># of farms</label>").append(e)),e.on("change",function(){b.farmsLimit=parseInt(a(this).val())}),c.on("submit",function(a){a.preventDefault()}),c},j=function(b){var c=a("<forma></forma>").css({display:"block"}),d=["lance","spada","topor","arc","cav_usoara","arcas_calare"];return d.forEach(function(d){var e=b[d]&&b[d].total||0,f=a("<label><b>"+d+"</b>: </label>"),g=a("<input name="+d+" value="+e+"> </input>").css({width:"40px"});g.on("change",function(){b[d]=b[d]||{},b[d].total=a(this).val()}),c.append(a("<div/>").append(f.append(g)))}),c.on("submit",function(a){a.preventDefault()}),c},l=function(b,c){var d=a("<forma></forma>").css({display:"block",clear:"both"}),e=Object.keys(b).map(function(a){return b[a].origin}).filter(function(a){return a.owner!==c});return e.forEach(function(b){var c=a('<input type="checkbox" checked />'),e=a("<label>"+b.name+"</label>").css({padding:"5px",margin:"5px"});c.on("change",function(){b.farmsLimit=a(this).prop("checked")?25:0}),d.append(e.append(c))}),d.on("submit",function(a){a.preventDefault()}),d},m=Object.keys(h).filter(function(a){return h[a].origin.owner===b}),n=function(){d.find(">*").remove(),m.forEach(function(b){var c=f(),e=a('<span id="'+b+'"class="counter">0</span>');c.append(g(b)),c.append("<span>attack # </span>"),c.append(a("<b/>").append(e)),c.css({float:"none"}),d.append(c)})},o=function(){var b=!0,c=a("<button />").on("click",function(){b=!b,e(),d.slideToggle()}),e=function(){c.text(b?"Close":"Open")};return e(),c};c.append(a("<div>Config for <b>"+b+"<b/> </div>").append(o())),m.forEach(function(a){var b=f();b.append(g(a)),b.append(i(h[a].origin)),b.append(j(h[a].origin.troops)),d.append(b)}),d.append(l(h,b)),d.append(e),c.append(d),a("body").append(c)}}();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement