Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name GM FarmShaper
- // @author Tjeerdo
- // @version 1.4
- // @description FarmShaper
- // @include https://nl*.tribalwars.nl/game.php?*
- // @grant none
- // ==/UserScript==
- (function ( f ) {
- var d = document;
- var s = d.createElement( 'script' );
- s.textContent = '$(document).ready(' + f.toString() + ')';
- (d.body || d.head || d.documentElement).appendChild( s );
- })( function () {
- // object which contains the FarmShaper settings
- var AR_FarmShaperSettings = JSON.parse( localStorage.getItem( 'AR_FarmShaperSettings' ) ) || {};
- // default settings:
- if ( localStorage.getItem( "AR_FarmShaperSettings" ) === null || AR_FarmShaperSettings.version !== "1.4" ) {
- AR_FarmShaperSettings.version = "1.4";
- AR_FarmShaperSettings.RamPerWall = {
- 1 : 3,
- 2 : 5,
- 3 : 8,
- 4 : 11,
- 5 : 15,
- 6 : 20,
- 7 : 25,
- 8 : 31,
- 9 : 37,
- 10: 46,
- 11: 56,
- 12: 66,
- 13: 78,
- 14: 92,
- 15: 107,
- 16: 125,
- 17: 144,
- 18: 167,
- 19: 192,
- 20: 220
- };
- AR_FarmShaperSettings.troops = {
- 'axe' : 100,
- 'spy' : 1,
- 'light': 50
- };
- AR_FarmShaperSettings.SortOnDistance = true;
- AR_FarmShaperSettings.UseLC = false;
- AR_FarmShaperSettings.MultipleAttacksOneTarget = true;
- AR_FarmShaperSettings.DemolitionOrder = ["Kazerne", "Hoofdgebouw", "Stal", "Werkplaats", "Smederij", "Verzamelplaats", "Standbeeld", "Marktplaats", "Houthakkers", "Leemgroeve", "IJzermijn", "Boerderij", "Opslagplaats", "Muur"];
- AR_FarmShaperSettings.CatsTargets = {
- "Hoofdgebouw": 1,
- "Kazerne": 0,
- "Stal": 0,
- "Werkplaats": 0,
- "Smederij": 0,
- "Verzamelplaats": 0,
- "Standbeeld": 0,
- "Marktplaats": 0,
- "Houthakkers": 30,
- "Leemgroeve": 30,
- "IJzermijn": 30,
- "Boerderij": 12,
- "Opslagplaats": 30,
- "Muur": 0
- };
- localStorage.setItem( 'AR_FarmShaperSettings', JSON.stringify( AR_FarmShaperSettings ) );
- location.reload();
- }
- // object in which al the coords and building levels are saved
- var AR_FarmShaper_Coords_BuildingLvls = JSON.parse( localStorage.getItem( "AR_FarmShaper_Coords_BuildingLvls" ) ) || {};
- var AR_FarmShaper_Coords_WallLvls = JSON.parse( localStorage.getItem( "AR_FarmShaper_Coords_WallLvls" ) ) || {};
- var CatsRequired = [
- /* CatsRequired[0 (this can be any number under 30, because this is the level the buildings is downgraded to) ][building lvl] */
- [0,2,6,10,15,21,28,36,45,56,68,82,98,115,136,159,185,215,248,286,328,376,430,490,558,634,720,815,922,1041,1175],
- [0,0,2, 6,11,17,23,31,39,49,61,74,89,106,126,148,173,202,234,270,312,358,410,469,534,508,691,784,888,1005,1135],
- [0,0,0, 2, 7,12,18,25,33,43,54,66,81, 97,116,137,161,189,220,255,295,340,390,447,511,583,663,754,855, 968,1095],
- [0,0,0, 0, 3, 7,13,20,27,36,47,59,72, 88,106,126,149,176,206,240,278,321,370,425,487,557,635,723,821, 932,1055],
- [0,0,0, 0, 0, 3, 8,14,21,30,40,51,64, 79, 96,115,137,163,192,224,261,303,350,403,463,531,607,692,788, 895,1015],
- [0,0,0, 0, 0, 0, 3, 9,15,23,32,43,55, 69, 86,104,126,150,177,209,244,285,330,382,440,505,579,661,754, 859, 976],
- [0,0,0, 0, 0, 0, 0, 3, 9,17,25,35,47, 60, 76, 93,114,137,163,193,227,266,310,360,416,479,550,631,721, 822, 936],
- [0,0,0, 0, 0, 0, 0, 0, 3,10,18,28,38, 51, 66, 82,102,124,149,178,211,248,290,338,392,453,522,600,687, 786, 896],
- [0,0,0, 0, 0, 0, 0, 0, 0, 4,11,20,30, 42, 56, 72, 90,111,135,162,194,230,270,316,368,427,494,569,654, 749, 856],
- [0,0,0, 0, 0, 0, 0, 0, 0, 0, 4,12,22, 33, 46, 61, 78, 98,121,147,177,211,250,294,345,401,466,538,620, 713, 816],
- [0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 4,13, 23, 36, 50, 66, 85,107,132,160,193,230,273,321,376,438,508,587, 676, 777],
- [0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 14, 26, 39, 54, 72, 92,116,143,175,210,251,297,350,409,477,553, 640, 737],
- [0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 16, 28, 42, 59, 78,101,127,156,190,229,273,324,381,446,520, 603, 697],
- [0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 17, 30, 46, 64, 85,110,138,170,207,250,298,353,415,486, 567, 657],
- [0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 18, 33, 50, 70, 93,120,150,186,226,272,325,385,453, 530, 617],
- [0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 20, 36, 54, 76,101,130,164,202,246,297,354,419, 493, 578],
- [0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 22, 39, 59, 83,110,142,178,220,268,323,386, 457, 538],
- [0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 24, 43, 65, 90,120,155,195,240,292,352, 420, 498],
- [0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 26, 46, 70, 98,131,169,212,262,319, 384, 458],
- [0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 28, 50, 77,107,143,184,231,285, 347, 418],
- [0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 30, 55, 84,117,156,200,252, 311, 379],
- [0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 33, 60, 91,127,170,218, 274, 339],
- [0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 36, 65, 99,139,185, 238, 299],
- [0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 39, 71,108,151, 201, 259],
- [0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 43, 77,118, 165, 219],
- [0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 47, 84, 128, 180],
- [0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 51, 92, 140],
- [0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 55, 100],
- [0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 60],
- [0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20],
- [0,0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
- ];
- // function for sorting the coords
- function AR_SortCoords(a) {
- var own_village = game_data.village.coord;
- f = own_village.split("|"),
- t = a.split("|"),
- fields = Math.sqrt(Math.pow(parseInt(f[0])-parseInt(t[0]),2)+Math.pow(parseInt(f[1])-parseInt(t[1]),2));
- return fields;
- }
- // function to fill in the troops and coords, if there are not enough troops then go to next village
- function FarmShaperPlace( AttackType, target ) {
- if ( $.isEmptyObject( AttackType ) ) {
- alert( "Alle aanvallen zijn verstuurd :)\nMede mogelijk gemaakt door Tjeerdo/.Arrogant ^^" );
- return;
- }
- if (AR_FarmShaperSettings.SortOnDistance === true) {
- var AR_keys = Object.keys( AttackType );
- AR_keys.sort(function ( a, b ) {
- return AR_SortCoords(a) - AR_SortCoords(b);
- });
- coord = AR_keys[0];
- } else {
- coord = Object.keys( AttackType )[0];
- }
- var $UnitForm = $('#command-data-form');
- var axe = $UnitForm.find('a[href*="#unit_input_axe"]').text().match(/\d+/);
- var spy = $UnitForm.find('a[href*="#unit_input_spy"]').text().match(/\d+/);
- var light = $UnitForm.find('a[href*="#unit_input_light"]').text().match(/\d+/);
- var splitCache = coord.split( "|" );
- var xCoord = splitCache[0];
- var yCoord = splitCache[1];
- var neededAxe = AR_FarmShaperSettings.troops['axe'];
- var neededSpy = AR_FarmShaperSettings.troops['spy'];
- var neededLight = AR_FarmShaperSettings.troops['light'];
- switch ( target ) {
- case 'wall':
- var ram = $UnitForm.find('a[href*="#unit_input_ram"]').text().match(/\d+/);
- var neededRam = AR_FarmShaperSettings.RamPerWall[AR_FarmShaper_Coords_WallLvls[coord]];
- if ( ram >= neededRam ) {
- $( "#unit_input_ram" ).val( neededRam );
- $( "#inputx" ).val( xCoord );
- $( "#inputy" ).val( yCoord );
- if ( axe >= neededAxe ) {
- $( "#unit_input_axe" ).val( neededAxe );
- } else if ( light >= neededLight && AR_FarmShaperSettings.UseLC) {
- $( "#unit_input_light" ).val( neededLight );
- } else {
- alert( "dorpswitch omdat er te weinig troepen zijn" );
- location.href = document.getElementById( "village_switch_right" ).href;
- }
- if ( spy >= neededSpy ) {
- $( "#unit_input_spy" ).val( neededSpy );
- } else {
- alert( "dorpswitch omdat er te weinig scouts zijn" );
- location.href = document.getElementById( "village_switch_right" ).href;
- }
- delete AR_FarmShaper_Coords_WallLvls[coord];
- localStorage['AR_FarmShaper_Coords_WallLvls'] = JSON.stringify( AR_FarmShaper_Coords_WallLvls );
- $( "#target_attack" ).focus();
- } else {
- alert( "dorpswitch omdat er te weinig rammen zijn" );
- location.href = document.getElementById( "village_switch_right" ).href;
- }
- break;
- case 'buildings':
- var catapult = $UnitForm.find('a[href*="#unit_input_catapult"]').text().match(/\d+/);
- var neededCatapult;
- if ( catapult < 2) {
- alert( "dorpswitch omdat er te weinig katapulten zijn" );
- location.href = document.getElementById( "village_switch_right" ).href;
- } else {
- $.each( AR_FarmShaperSettings.DemolitionOrder, function ( index ) {
- var AR_Building = AR_FarmShaperSettings.DemolitionOrder[index];
- var AR_MinimumLvl = AR_FarmShaperSettings.CatsTargets[AR_Building];
- var AR_CurrentLvl = AR_FarmShaper_Coords_BuildingLvls[coord][AR_Building] === undefined ? AR_FarmShaper_Coords_BuildingLvls[coord][AR_Building] : 0;
- if( AR_MinimumLvl < AR_CurrentLvl ) {
- neededCatapult = CatsRequired[AR_MinimumLvl][AR_CurrentLvl];
- if ( catapult > neededCatapult ) {
- if ( neededCatapult === 0) {
- return true;
- }
- $( "#unit_input_catapult" ).val( neededCatapult );
- $( "#inputx" ).val( xCoord );
- $( "#inputy" ).val( yCoord );
- if ( axe >= neededAxe ) {
- $( "#unit_input_axe" ).val( neededAxe );
- } else if ( light >= neededLight && AR_FarmShaperSettings.UseLC) {
- $( "#unit_input_light" ).val( neededLight );
- } else {
- alert( "dorpswitch omdat er te weinig troepen zijn" );
- location.href = document.getElementById( "village_switch_right" ).href;
- }
- if ( spy >= neededSpy ) {
- $( "#unit_input_spy" ).val( neededSpy );
- } else {
- alert( "dorpswitch omdat er te weinig scouts zijn" );
- location.href = document.getElementById( "village_switch_right" ).href;
- }
- if ( !AR_FarmShaperSettings.MultipleAttacksOneTarget ) {
- delete AR_FarmShaper_Coords_BuildingLvls[coord];
- } else {
- AR_FarmShaper_Coords_BuildingLvls[coord][AR_Building] = AR_MinimumLvl;
- }
- localStorage['AR_FarmShaper_Coords_BuildingLvls'] = JSON.stringify( AR_FarmShaper_Coords_BuildingLvls );
- localStorage['AR_FarmShaperKataTarget'] = AR_Building;
- $( "#target_attack" ).focus();
- return false;
- } else if ( catapult < neededCatapult ) {
- var counter = AR_CurrentLvl - AR_MinimumLvl;
- for( var i = AR_MinimumLvl; i < AR_CurrentLvl; i++ ) {
- neededCatapult = CatsRequired[i][AR_CurrentLvl];
- if ( catapult >= neededCatapult && neededCatapult > 0 ) {
- $( "#unit_input_catapult" ).val( neededCatapult );
- $( "#inputx" ).val( xCoord );
- $( "#inputy" ).val( yCoord );
- if ( axe >= neededAxe ) {
- $( "#unit_input_axe" ).val( neededAxe );
- } else if ( light >= neededLight && AR_FarmShaperSettings.UseLC) {
- $( "#unit_input_light" ).val( neededLight );
- } else {
- alert( "dorpswitch omdat er te weinig troepen zijn" );
- location.href = document.getElementById( "village_switch_right" ).href;
- }
- if ( spy >= neededSpy ) {
- $( "#unit_input_spy" ).val( neededSpy );
- } else {
- alert( "dorpswitch omdat er te weinig scouts zijn" );
- location.href = document.getElementById( "village_switch_right" ).href;
- }
- if ( !AR_FarmShaperSettings.MultipleAttacksOneTarget ) {
- delete AR_FarmShaper_Coords_BuildingLvls[coord];
- } else {
- AR_FarmShaper_Coords_BuildingLvls[coord][AR_Building] = i;
- }
- localStorage['AR_FarmShaper_Coords_BuildingLvls'] = JSON.stringify( AR_FarmShaper_Coords_BuildingLvls );
- localStorage['AR_FarmShaperKataTarget'] = AR_Building;
- $( "#target_attack" ).focus();
- return false;
- } else if (neededCatapult === 0 ) {
- return;
- }
- }
- }
- }
- if (index == 13) {
- delete AR_FarmShaper_Coords_BuildingLvls[coord];
- localStorage['AR.FarmShaper.Coords.BuildingLvls'] = JSON.stringify( AR_FarmShaper_Coords_BuildingLvls );
- FarmShaperPlace( AR_FarmShaper_Coords_BuildingLvls, "buildings" );
- }
- });
- }
- break;
- }
- }
- // append element to the footer so that the user can do it in their own way.
- $( '#linkContainer' ).append( '<a href="#AR_FarmShaperSettings" id="FarmShaperSettings"> - AR FarmShaper</a>' );
- $( "#FarmShaperSettings" ).click( function () {
- // create div for settings popup
- var a = document.createElement( "div" );
- // set ID for the settings popup
- a.id = "AR_FarmShaperSettingsPopup";
- // set the CSS for the settings popup
- a.style.cssText = "background-color:#ecd6ad;border:2px solid #7d510f;z-index:99;top:100px;left:" + (($( document ).width() - 600) / 2) + "px;position:absolute;padding:7px;width:600px;border-radius:7px;box-shadow:0 0 50px 15px #000000;";
- // append the element to the document body
- document.body.appendChild( a );
- // create and set innerHTML for the settings popup
- var menu = '<h2 style="text-align: center;width: 75%;float:left;">settings FarmShaper</h2><h3 style="text-align: right;width:20%;float:left;"><a id="AR_FarmShaperSettingsPopupSluiten" href="javascript:void(0)">sluiten</a></h3><div class="Settings_FarmShaper" style="float:left;"><table style="float:left;margin:0px 20px 0px 20px;width:45%;" class="vis"><tr><th>Muurlvl</th><th>aantal ram</th></tr><tr><td>1</td><td><input type="number" value="' + AR_FarmShaperSettings.RamPerWall[1] + '" id="RamPerWallLvl1"/></td></tr><tr><td>2</td><td><input type="number" value="' + AR_FarmShaperSettings.RamPerWall[2] + '" id="RamPerWallLvl2"/></td></tr><tr><td>3</td><td><input type="number" value="' + AR_FarmShaperSettings.RamPerWall[3] + '" id="RamPerWallLvl3"/></td></tr><tr><td>4</td><td><input type="number" value="' + AR_FarmShaperSettings.RamPerWall[4] + '" id="RamPerWallLvl4"/></td></tr><tr><td>5</td><td><input type="number" value="' + AR_FarmShaperSettings.RamPerWall[5] + '" id="RamPerWallLvl5"/></td></tr><tr><td>6</td><td><input type="number" value="' + AR_FarmShaperSettings.RamPerWall[6] + '" id="RamPerWallLvl6"/></td></tr><tr><td>7</td><td><input type="number" value="' + AR_FarmShaperSettings.RamPerWall[7] + '" id="RamPerWallLvl7"/></td></tr><tr><td>8</td><td><input type="number" value="' + AR_FarmShaperSettings.RamPerWall[8] + '" id="RamPerWallLvl8"/></td></tr><tr><td>9</td><td><input type="number" value="' + AR_FarmShaperSettings.RamPerWall[9] + '" id="RamPerWallLvl9"/></td></tr><tr><td>10</td><td><input type="number" value="' + AR_FarmShaperSettings.RamPerWall[10] + '" id="RamPerWallLvl10"/></td></tr><tr><td>11</td><td><input type="number" value="' + AR_FarmShaperSettings.RamPerWall[11] + '" id="RamPerWallLvl11"/></td></tr><tr><td>12</td><td><input type="number" value="' + AR_FarmShaperSettings.RamPerWall[12] + '" id="RamPerWallLvl12"/></td></tr><tr><td>13</td><td><input type="number" value="' + AR_FarmShaperSettings.RamPerWall[13] + '" id="RamPerWallLvl13"/></td></tr><tr><td>14</td><td><input type="number" value="' + AR_FarmShaperSettings.RamPerWall[14] + '" id="RamPerWallLvl14"/></td></tr><tr><td>15</td><td><input type="number" value="' + AR_FarmShaperSettings.RamPerWall[15] + '" id="RamPerWallLvl15"/></td></tr><tr><td>16</td><td><input type="number" value="' + AR_FarmShaperSettings.RamPerWall[16] + '" id="RamPerWallLvl16"/></td></tr><tr><td>17</td><td><input type="number" value="' + AR_FarmShaperSettings.RamPerWall[17] + '" id="RamPerWallLvl17"/></td></tr><tr><td>18</td><td><input type="number" value="' + AR_FarmShaperSettings.RamPerWall[18] + '" id="RamPerWallLvl18"/></td></tr><tr><td>19</td><td><input type="number" value="' + AR_FarmShaperSettings.RamPerWall[19] + '" id="RamPerWallLvl19"/></td></tr><tr><td>20</td><td><input type="number" value="' + AR_FarmShaperSettings.RamPerWall[20] + '" id="RamPerWallLvl20"/></td></tr></table><table style="float:left;width:45%;" class="vis"><tr><td>aantal bijl per aanval:</td><td><input type="number" value="' + AR_FarmShaperSettings.troops['axe'] + '" id="AR_FarmShaperAxe"/></td></tr><tr><td>aantal scouts per aanval:</td><td><input type="number" value="' + AR_FarmShaperSettings.troops['spy'] + '" id="AR_FarmShaperSpy"/></td></tr><tr><td>aantal LC per aanval:</td><td><input type="number" value="' + AR_FarmShaperSettings.troops['light'] + '" id="AR_FarmShaperLight"/></td></tr></table><table style="float:left;width:45%;" class="vis"><tr><td><input type="checkbox" id="AR_SortOnDistance" value=""></td><td>Coördinaten sorteren op afstand</td></tr><tr><td><input type="checkbox" id="AR_UseLC" value=""></td><td>LC gebruiken voor het slopen</td></tr><tr><td><input type="checkbox" id="AR_MultipleAttacksOneTarget" value=""></td><td>Meerdere kata-aanvallen per dorp</td></tr></table><div style="float:left;width:45%;" id="AR_FarmShaper_Buildings"><div style="padding: 2px;" id="AR_FarmShaper_Hoofdgebouw"><input type="number" style="width:30px;float:left;" value="' + (AR_FarmShaperSettings.DemolitionOrder.indexOf("Hoofdgebouw") + 1) + '"/><span style="width:113px;display:block;float:left;">Hoofdgebouw</span><input type="number" value="' + AR_FarmShaperSettings.CatsTargets.Hoofdgebouw + '"></div><div style="padding: 2px;" id="AR_FarmShaper_Kazerne"><input type="number" style="width:30px;float:left;" value="' + (AR_FarmShaperSettings.DemolitionOrder.indexOf("Kazerne") + 1) + '"/><span style="width:113px;display:block;float:left;">Kazerne</span><input type="number" value="' + AR_FarmShaperSettings.CatsTargets.Kazerne + '"></div><div style="padding: 2px;" id="AR_FarmShaper_Stal"><input type="number" style="width:30px;float:left;" value="' + (AR_FarmShaperSettings.DemolitionOrder.indexOf("Stal") + 1) + '"/><span style="width:113px;display:block;float:left;">Stal</span><input type="number" value="' + AR_FarmShaperSettings.CatsTargets.Stal + '"></div><div style="padding: 2px;" id="AR_FarmShaper_Werkplaats"><input type="number" style="width:30px;float:left;" value="' + (AR_FarmShaperSettings.DemolitionOrder.indexOf("Werkplaats") + 1) + '"/><span style="width:113px;display:block;float:left;">Werkplaats</span><input type="number" value="' + AR_FarmShaperSettings.CatsTargets.Werkplaats + '"></div><div style="padding: 2px;" id="AR_FarmShaper_Smederij"><input type="number" style="width:30px;float:left;" value="' + (AR_FarmShaperSettings.DemolitionOrder.indexOf("Smederij") + 1) + '"/><span style="width:113px;display:block;float:left;">Smederij</span><input type="number" value="' + AR_FarmShaperSettings.CatsTargets.Smederij + '"></div><div style="padding: 2px;" id="AR_FarmShaper_Verzamelplaats"><input type="number" style="width:30px;float:left;" value="' + (AR_FarmShaperSettings.DemolitionOrder.indexOf("Verzamelplaats") + 1) + '"/><span style="width:113px;display:block;float:left;">Verzamelplaats</span><input type="number" value="' + AR_FarmShaperSettings.CatsTargets.Verzamelplaats + '"></div><div style="padding: 2px;" id="AR_FarmShaper_Standbeeld"><input type="number" style="width:30px;float:left;" value="' + (AR_FarmShaperSettings.DemolitionOrder.indexOf("Standbeeld") + 1) + '"/><span style="width:113px;display:block;float:left;">Standbeeld</span><input type="number" value="' + AR_FarmShaperSettings.CatsTargets.Standbeeld + '"></div><div style="padding: 2px;" id="AR_FarmShaper_Marktplaats"><input type="number" style="width:30px;float:left;" value="' + (AR_FarmShaperSettings.DemolitionOrder.indexOf("Marktplaats") + 1) + '"/><span style="width:113px;display:block;float:left;">Marktplaats</span><input type="number" value="' + AR_FarmShaperSettings.CatsTargets.Marktplaats + '"></div><div style="padding: 2px;" id="AR_FarmShaper_Houthakkers"><input type="number" style="width:30px;float:left;" value="' + (AR_FarmShaperSettings.DemolitionOrder.indexOf("Houthakkers") + 1) + '"/><span style="width:113px;display:block;float:left;">Houthakkers</span><input type="number" value="' + AR_FarmShaperSettings.CatsTargets.Houthakkers + '"></div><div style="padding: 2px;" id="AR_FarmShaper_Leemgroeve"><input type="number" style="width:30px;float:left;" value="' + (AR_FarmShaperSettings.DemolitionOrder.indexOf("Leemgroeve") + 1) + '"/><span style="width:113px;display:block;float:left;">Leemgroeve</span><input type="number" value="' + AR_FarmShaperSettings.CatsTargets.Leemgroeve + '"></div><div style="padding: 2px;" id="AR_FarmShaper_IJzermijn"><input type="number" style="width:30px;float:left;" value="' + (AR_FarmShaperSettings.DemolitionOrder.indexOf("IJzermijn") + 1) + '"/><span style="width:113px;display:block;float:left;">IJzermijn</span><input type="number" value="' + AR_FarmShaperSettings.CatsTargets.IJzermijn + '"></div><div style="padding: 2px;" id="AR_FarmShaper_Boerderij"><input type="number" style="width:30px;float:left;" value="' + (AR_FarmShaperSettings.DemolitionOrder.indexOf("Boerderij") + 1) + '"/><span style="width:113px;display:block;float:left;">Boerderij</span><input type="number" value="' + AR_FarmShaperSettings.CatsTargets.Boerderij + '"></div><div style="padding: 2px;" id="AR_FarmShaper_Opslagplaats"><input type="number" style="width:30px;float:left;" value="' + (AR_FarmShaperSettings.DemolitionOrder.indexOf("Opslagplaats") + 1) + '"/><span style="width:113px;display:block;float:left;">Opslagplaats</span><input type="number" value="' + AR_FarmShaperSettings.CatsTargets.Opslagplaats + '"></div><div style="padding: 2px;" id="AR_FarmShaper_Muur"><input type="number" style="width:30px;float:left;" value="' + (AR_FarmShaperSettings.DemolitionOrder.indexOf("Muur") + 1) + '"/><span style="width:113px;display:block;float:left;">Muur</span><input type="number" value="' + AR_FarmShaperSettings.CatsTargets.Muur + '"></div></div></div>';
- a.innerHTML = menu;
- $( '#AR_SortOnDistance' ).prop( 'checked', AR_FarmShaperSettings.SortOnDistance );
- $( '#AR_UseLC' ).prop( 'checked', AR_FarmShaperSettings.UseLC );
- $( '#AR_MultipleAttacksOneTarget' ).prop( 'checked', AR_FarmShaperSettings.MultipleAttacksOneTarget );
- $( '#AR_FarmShaperSettingsPopupSluiten' ).on( 'click', function () {
- AR_FarmShaperSettings.RamPerWall = {
- 1 : parseInt( $( '#RamPerWallLvl1' ).val() ),
- 2 : parseInt( $( '#RamPerWallLvl2' ).val() ),
- 3 : parseInt( $( '#RamPerWallLvl3' ).val() ),
- 4 : parseInt( $( '#RamPerWallLvl4' ).val() ),
- 5 : parseInt( $( '#RamPerWallLvl5' ).val() ),
- 6 : parseInt( $( '#RamPerWallLvl6' ).val() ),
- 7 : parseInt( $( '#RamPerWallLvl7' ).val() ),
- 8 : parseInt( $( '#RamPerWallLvl8' ).val() ),
- 9 : parseInt( $( '#RamPerWallLvl9' ).val() ),
- 10: parseInt( $( '#RamPerWallLvl10' ).val() ),
- 11: parseInt( $( '#RamPerWallLvl11' ).val() ),
- 12: parseInt( $( '#RamPerWallLvl12' ).val() ),
- 13: parseInt( $( '#RamPerWallLvl13' ).val() ),
- 14: parseInt( $( '#RamPerWallLvl14' ).val() ),
- 15: parseInt( $( '#RamPerWallLvl15' ).val() ),
- 16: parseInt( $( '#RamPerWallLvl16' ).val() ),
- 17: parseInt( $( '#RamPerWallLvl17' ).val() ),
- 18: parseInt( $( '#RamPerWallLvl18' ).val() ),
- 19: parseInt( $( '#RamPerWallLvl19' ).val() ),
- 20: parseInt( $( '#RamPerWallLvl20' ).val() )
- };
- AR_FarmShaperSettings.troops = {
- 'axe' : parseInt( $( '#AR_FarmShaperAxe' ).val() ),
- 'spy' : parseInt( $( '#AR_FarmShaperSpy' ).val() ),
- 'light': parseInt( $( '#AR_FarmShaperLight' ).val() )
- };
- AR_FarmShaperSettings.SortOnDistance = $( '#AR_SortOnDistance' ).is( ':checked' );
- AR_FarmShaperSettings.UseLC = $( '#AR_UseLC' ).is( ':checked' );
- $( '#AR_FarmShaper_Buildings' ).children( 'div' ).each( function () {
- var $this = $( this );
- var $this_input = $this.find( 'input' );
- var AR_newIndexBuilding = parseInt($this_input.first().val()) - 1;
- var AR_Building = $this.find( 'span' ).text();
- var AR_NewMinimumLvl = parseInt($this_input.last().val());
- if ( AR_Building.match( /Hoofdgebouw|Boerderij|Opslagplaats/i ) ) {
- if ( AR_NewMinimumLvl < 1 ) {
- AR_FarmShaperSettings.CatsTargets[AR_Building] = 1;
- } else {
- AR_FarmShaperSettings.CatsTargets[AR_Building] = AR_NewMinimumLvl;
- }
- } else {
- AR_FarmShaperSettings.CatsTargets[AR_Building] = AR_NewMinimumLvl;
- }
- AR_FarmShaperSettings.DemolitionOrder[AR_newIndexBuilding] = AR_Building;
- } );
- localStorage.setItem( 'AR_FarmShaperSettings', JSON.stringify( AR_FarmShaperSettings ) );
- location.reload();
- } );
- } );
- // switch to see on which page the user is and do the stuff on the right page
- switch ( game_data.screen ) {
- case "am_farm":
- var $am_widget_farm = $( "#am_widget_Farm" ); //Cache selectors we use multiple times
- var $am_widget_farm_tr = $am_widget_farm.find( 'tr' );
- $am_widget_farm.find( "h4" ).first().after('<table class="vis"><tr><th>FarmShaper: </th><td><input type="button" id="AR_FarmShaper_Buildings" value="Gebouwlvls opslaan"/></td><td><input type="button" id="AR_FarmShaper_Wall" value="Muurlvls opslaan"/></td><td id="AR_FarmShaper_Last_td"><input type="button" id="AR_FarmShaper_remove_old_list" value="oude gegevens wissen"/></td></tr><table>');
- $( '#AR_FarmShaper_Wall' ).click( function () {
- var indexCoordsColumn = $am_widget_farm_tr.find( 'th:contains("Dorp")' ).index();
- var indexWallColumn = $am_widget_farm_tr.find( 'th:has(img[src*="wall.png"])' ).index();
- $am_widget_farm.find( 'tr[class*="report"]' ).each( function () {
- var $this_td = $( this ).find( 'td' );
- var $this_td_coordsColumn_a = $this_td.eq( indexCoordsColumn ).find( 'a' );
- var coords = $this_td.eq( indexCoordsColumn ).text().match( /\d{1,3}\|\d{1,3}/ );
- var wall = parseInt( $this_td.eq( indexWallColumn ).text() );
- if ( wall > 0 ) {
- AR_FarmShaper_Coords_WallLvls[coords] = wall;
- $this_td_coordsColumn_a.text( "FarmShaper: Het muurlevel is opgeslagen!" );
- } else if( isNaN(wall) ) {
- $this_td_coordsColumn_a.text( "FarmShaper: Het muurlevel is onbekend" );
- } else {
- $this_td_coordsColumn_a.text( "FarmShaper: De muur is lvl 0 " );
- }
- } );
- localStorage['AR_FarmShaper_Coords_WallLvls'] = JSON.stringify( AR_FarmShaper_Coords_WallLvls );
- $( '#AR_FarmShaper_Last_td' ).after( '<td style="font-weight:bold;">de dorpen op deze pagina zijn opgeslagen</td>' );
- } );
- $( '#AR_FarmShaper_Buildings' ).click( function () {
- var indexCoordsColumn = $am_widget_farm_tr.find( 'th:contains("Dorp")' ).index();
- $am_widget_farm.find( 'tr[class*="report"]' ).each( function () {
- var $this_td = $( this ).find( 'td' );
- var $this_td_coordsColumn_a = $this_td.eq( indexCoordsColumn ).find( 'a' );
- var AR_ReportURL = $this_td_coordsColumn_a.attr( 'href' );
- $.ajax( {
- url: "https://" + location.host + AR_ReportURL,
- async: false,
- success: function ( result ) {
- var $result = $( result );
- var $attack_spy_building_data = $result.find( '#attack_spy_building_data' );
- var $attack_info_def = $result.find( '#attack_info_def' );
- if ( $attack_spy_building_data.length > 0 ) {
- var coord = $attack_info_def.find( '.village_anchor' ).text().match( /\d{1,3}\|\d{1,3}/ );
- var buildings = JSON.parse( $attack_spy_building_data.val() );
- AR_FarmShaper_Coords_BuildingLvls[coord] = {};
- $.each( buildings, function () {
- var name = this.name;
- var level = parseInt( this.level );
- if ( !name.match( /Kerk|Adelshoeve|Schuilplaats/i ) ) {
- AR_FarmShaper_Coords_BuildingLvls[coord][name] = level;
- if ( name.match( /Muur/i ) && level > 0 ) {
- AR_FarmShaper_Coords_WallLvls[coord] = level;
- }
- }
- });
- localStorage['AR_FarmShaper_Coords_BuildingLvls'] = JSON.stringify( AR_FarmShaper_Coords_BuildingLvls );
- localStorage['AR_FarmShaper_Coords_WallLvls'] = JSON.stringify( AR_FarmShaper_Coords_WallLvls );
- $this_td_coordsColumn_a.text( "FarmShaper: de gebouwlevels in dit rapport zijn opgeslagen!" );
- } else {
- $this_td_coordsColumn_a.text( 'FarmShaper: Geen gebouwlevels gevonden!' );
- }
- }
- } ).fail( function () {
- alert( "error" );
- } );
- } );
- $( '#AR_FarmShaper_Last_td' ).after( '<td style="font-weight:bold;">de dorpen op deze pagina zijn opgeslagen</td>' );
- } );
- $( '#AR_FarmShaper_remove_old_list' ).click( function () {
- delete localStorage['AR.FarmShaper.Coords.WallLvls'];
- AR_FarmShaper_Coords_WallLvls = {};
- delete localStorage['AR.FarmShaper.Coords.BuildingLvls'];
- AR_FarmShaper_Coords_BuildingLvls = {};
- alert( 'oude gegevens zijn gewist' );
- } );
- break;
- case "place":
- if ( location.href.match( 'try=confirm' ) ) {
- if ( localStorage['AR.FarmShaperKataTarget'] === undefined ) {
- $( "select[name='building']" ).val( $( 'option:contains(' + localStorage['AR.FarmShaperKataTarget'] + ')' ).val() );
- delete localStorage['AR.FarmShaperKataTarget'];
- }
- } else {
- var villagesToGoForFarmShaper_Wall = $.map( AR_FarmShaper_Coords_WallLvls, function ( n, i ) { return i; } ).length;
- var villagesToGoForFarmShaper_Buildings = $.map( AR_FarmShaper_Coords_BuildingLvls, function ( n, i ) { return i; } ).length;
- $( '.modemenu' ).find(' tr:has(td:contains("Bevelen"))' ).before('<tr><td style="min-width: 80px;"><a href="#" id="AR_StartFarmShaper_Wall">Wall Breaker ( ' + villagesToGoForFarmShaper_Wall + ' )</a></td><td style="min-width: 80px;"><a href="#" id="AR_StartFarmShaper_Buildings">Barb Shaper ( ' + villagesToGoForFarmShaper_Buildings + ' )</a></td></tr>');
- $( '#AR_StartFarmShaper_Wall' ).click( function () {
- FarmShaperPlace( AR_FarmShaper_Coords_WallLvls, "wall" );
- } );
- $( '#AR_StartFarmShaper_Buildings' ).click( function () {
- FarmShaperPlace( AR_FarmShaper_Coords_BuildingLvls, "buildings" );
- } );
- }
- break;
- case "report":
- var $content_value = $( '#content_value' );
- var $content_value_h2 = $content_value.find( 'h2' );
- $content_value_h2.after('<div style="position: relative;"><text id="AR_FarmShaper" style="position: absolute; top: -20px; left: 170px; display: none;">FarmShaper: Loading..</text></div>');
- $( '.modemenu' ).find( 'tr' ).last().after('<tr><td style="background-color: #ebd6ab"> </td></tr><tr><th style="min-width: 80px">FarmShaper </th></tr><tr style="display:none"><td style="min-width: 80px;"><input type="button" id="AR_FarmShaper_Save_Buildings_Fast" value="Gebouwlvls opslaan"/></td></tr><tr><td style="min-width: 80px;"><input type="button" id="AR_FarmShaper_remove_old_list" value="Oude gegevens wissen"/></td></tr>');
- $( '#AR_FarmShaper_remove_old_list' ).click( function () {
- delete localStorage['AR.FarmShaper_Coords_WallLvls'];
- AR_FarmShaper_Coords_WallLvls = {};
- delete localStorage['AR.FarmShaper_Coords_BuildingLvls'];
- AR_FarmShaper_Coords_BuildingLvls = {};
- alert( 'oude gegevens zijn gewist' );
- } );
- if ( location.href.match( 'view=' ) ) {
- $( '#AR_FarmShaper' ).css( 'display', 'block' );
- var $attack_spy_building_data = $( '#attack_spy_building_data' );
- var $attack_info_def = $( '#attack_info_def' );
- if ( $attack_info_def.find( 'tr' ).first().find( 'a' ).length < 1 ) {
- if ( $attack_spy_building_data.length > 0 ) {
- var coord = $attack_info_def.find( '.village_anchor' ).text().match( /\d{1,3}\|\d{1,3}/ );
- var buildings = JSON.parse( $attack_spy_building_data.val() );
- AR_FarmShaper_Coords_BuildingLvls[coord] = {};
- $.each( buildings, function () {
- var name = this.name;
- var level = parseInt( this.level );
- if ( !name.match( /Kerk|Adelshoeve|Schuilplaats/i ) ) {
- AR_FarmShaper_Coords_BuildingLvls[coord][name] = level;
- if ( name.match( /Muur/i ) && level > 0 ) {
- AR_FarmShaper_Coords_WallLvls[coord] = level;
- }
- }
- });
- localStorage['AR_FarmShaper_Coords_BuildingLvls'] = JSON.stringify( AR_FarmShaper_Coords_BuildingLvls );
- localStorage['AR_FarmShaper_Coords_WallLvls'] = JSON.stringify( AR_FarmShaper_Coords_WallLvls );
- $( '#AR_FarmShaper' ).text( "FarmShaper: de gebouwlevels in dit rapport zijn opgeslagen!" );
- } else {
- $( '#AR_FarmShaper' ).text( 'FarmShaper: Geen gebouwlevels gevonden!' );
- }
- } else {
- $( '#AR_FarmShaper' ).text( 'FarmShaper: Werkt alleen bij verlaten dorpen!' );
- }
- } else {
- var $AR_FarmShaper_Save_Buildings_Fast = $( '#AR_FarmShaper_Save_Buildings_Fast' );
- $AR_FarmShaper_Save_Buildings_Fast.closest( 'tr' ).css( 'display', 'block' );
- $AR_FarmShaper_Save_Buildings_Fast.on( 'click', function () {
- $( '#AR_FarmShaper' ).css( 'display', 'block' );
- $( '#report_list' ).find( 'tr' ).each( function () {
- var $this = $( this );
- var $this_td = $this.find( 'td' );
- if ( $this_td.has( 'img[src*="farm.png"]' ).length > 0 || $this_td.has( 'img[src*="attack"]' ).length > 0 ) {
- var AR_ReportURL = $this.find( '.quickedit-content' ).find( 'a' ).attr( 'href' );
- $.ajax( {
- url: "https://" + location.host + AR_ReportURL,
- async: false,
- success: function ( result ) {
- var $result = $( result );
- var $attack_spy_building_data = $result.find( '#attack_spy_building_data' );
- var $attack_info_def = $result.find( '#attack_info_def' );
- if ( $attack_info_def.find( 'tr' ).first().find( 'a' ).length < 1 ) {
- if ( $attack_spy_building_data.length > 0 ) {
- var coord = $attack_info_def.find( '.village_anchor' ).text().match( /\d{1,3}\|\d{1,3}/ );
- var buildings = JSON.parse( $attack_spy_building_data.val() );
- AR_FarmShaper_Coords_BuildingLvls[coord] = {};
- $.each( buildings, function () {
- var name = this.name;
- var level = parseInt( this.level );
- if ( !name.match( /Kerk|Adelshoeve|Schuilplaats/i ) ) {
- AR_FarmShaper_Coords_BuildingLvls[coord][name] = level;
- if ( name.match( /Muur/i ) && level > 0 ) {
- AR_FarmShaper_Coords_WallLvls[coord] = level;
- }
- }
- });
- localStorage['AR_FarmShaper_Coords_BuildingLvls'] = JSON.stringify( AR_FarmShaper_Coords_BuildingLvls );
- localStorage['AR_FarmShaper_Coords_WallLvls'] = JSON.stringify( AR_FarmShaper_Coords_WallLvls );
- $this.find( '.quickedit-label' ).text( "FarmShaper: de gebouwlevels in dit rapport zijn opgeslagen!" );
- } else {
- $this.find( '.quickedit-label' ).text( 'FarmShaper: Geen gebouwlevels gevonden!' );
- }
- } else {
- $this.find( '.quickedit-label' ).text( 'FarmShaper: Werkt alleen bij verlaten dorpen!' );
- }
- }
- } ).fail( function () {
- alert( "error" );
- } );
- }
- } );
- $( '#AR_FarmShaper' ).text( 'FarmShaper: Opgeslagen!' );
- } );
- }
- break;
- }
- } );
Add Comment
Please, Sign In to add comment