Advertisement
Dzejkobini

esim.battleorders.extension

Jan 21st, 2016
438
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name BattleOrdersExtension
  3. // @namespace Violentmonkey Scripts
  4. // @grant none
  5. // @include *.e-sim.org/index.html*
  6. // @include *.e-sim.org/
  7. // ==/UserScript==
  8.  
  9. var countries = {"Afghanistan": 130, "Albania": 55, "Algeria": 64, "Angola": 65, "Argentina": 24, "Armenia": 131, "Australia": 35, "Austria": 48, "Azerbaijan": 132, "Bahrain": 154, "Bangladesh": 59, "Belarus": 52, "Belgium": 40, "Benin": 85, "Bolivia": 121, "Bosnia-and-Herzegovina": 13, "Botswana": 84, "Brazil": 23, "Bulgaria": 10, "Burkina-Faso": 86, "Burundi": 109, "Cambodia": 119, "Cameroon": 66, "Canada": 27, "Central-African-Republic": 88, "Chad": 92, "Chile": 45, "China": 28, "Colombia": 46, "Congo": 87, "Costa-Rica": 144, "Croatia": 12, "Cuba": 147, "Czech-Republic": 51, "Denmark": 50, "Djibouti": 107, "Dominican-Republic": 126, "DR-of-the-Congo": 89, "Ecuador": 122, "Egypt": 57, "El-Salvador": 152, "Equatorial-Guinea": 100, "Eritrea": 90, "Estonia": 53, "Ethiopia": 68, "Finland": 37, "France": 4, "Gabon": 91, "Georgia": 133, "Germany": 3, "Ghana": 69, "Greece": 14, "Guatemala": 127, "Guinea": 96, "Guinea-Bissau": 97, "Guyana": 140, "Haiti": 153, "Honduras": 125, "Hungary": 8, "India": 34, "Indonesia": 29, "Iran": 30, "Iraq": 112, "Ireland": 38, "Israel": 33, "Italy": 7, "Ivory-Coast": 67, "Jamaica": 151, "Japan": 58, "Jordan": 115, "Kazakhstan": 128, "Kenya": 70, "Kuwait": 155, "Kyrgyzstan": 134, "Laos": 135, "Latvia": 20, "Lebanon": 148, "Lesotho": 102, "Liberia": 99, "Libya": 71, "Lithuania": 19, "Madagascar": 104, "Malawi": 105, "Malaysia": 42, "Mali": 94, "Mauritania": 95, "Mexico": 25, "Moldova": 150, "Mongolia": 145, "Montenegro": 47, "Morocco": 72, "Mozambique": 73, "Namibia": 101, "Nepal": 120, "Netherlands": 36, "New-Zealand": 139, "Nicaragua": 142, "Niger": 93, "Nigeria": 74, "Norway": 43, "Oman": 113, "Pakistan": 41, "Panama": 143, "Papua-New-Guinea": 146, "Paraguay": 123, "Peru": 44, "Philippines": 54, "Poland": 1, "Portugal": 18, "Puerto-Rico": 149, "Qatar": 114, "Republic-of-Macedonia": 15, "Romania": 9, "Russia": 2, "Rwanda": 108, "Saudi-Arabia": 62, "Senegal": 75, "Serbia": 11, "Sierra-Leone": 98, "Slovakia": 49, "Slovenia": 21, "Somalia": 106, "South-Africa": 76, "South-Korea": 31, "South-Sudan": 118, "Spain": 5, "Sri-Lanka": 129, "Sudan": 77, "Suriname": 141, "Swaziland": 103, "Sweden": 17, "Switzerland": 39, "Syria": 111, "Taiwan": 32, "Tajikistan": 136, "Tanzania": 78, "Thailand": 63, "The-Gambia": 117, "Togo": 79, "Tunisia": 80, "Turkey": 22, "Turkmenistan": 137, "Uganda": 81, "Ukraine": 16, "United-Arab-Emirates": 110, "United-Kingdom": 6, "Uruguay": 124, "USA": 26, "Uzbekistan": 138, "Venezuela": 56, "Vietnam": 60, "Western-Sahara": 116, "Yemen": 61, "Zambia": 82, "Zimbabwe": 83};
  10.  
  11. var mapObj;
  12. var regionsObj;
  13. $(document).ready(function() {
  14.     var ordersContainer = $('[style="position:relative;margin:10px auto;width:100%;padding:10px;height:auto;border-width:1px;border-style:solid;border-color:#3D6571;border-radius:3px;background-color:#F2F2F2;display:block;color:#080808;text-align:center;background-image:url(\'//cdn.e-sim.org//img/bgForElements/muOders.jpg\');background-size:100%;"]');
  15.  
  16.     if (typeof ordersContainer[0] != 'undefined') {
  17.         getDataFromApi();
  18.         modyfiOrdersContainer();
  19.     };
  20.  
  21.     $('#Travel').click(function() {
  22.         var ticket = $('#ticketQuality option:selected')[0].value.replace(/^\[|\]$/g, '').split(",");
  23.         var location = $('#regionId option:selected')[0]
  24.         var ticketQuality = parseInt(ticket[0].trim());
  25.         var ticketAmount = parseInt(ticket[1].trim());
  26.         var countryId;
  27.  
  28.         if (ticketAmount > 0) {
  29.             for (var i = 0; i < mapObj.length; i++) {
  30.  
  31.                 if (mapObj[i].regionId == location.value) {
  32.                     countryId = mapObj[i].occupantId;
  33.                     break;
  34.                 }
  35.             }
  36.             $.post("/travel.html", {
  37.                     countryId: countryId,
  38.                     regionId: location.value,
  39.                     ticketQuality: ticketQuality
  40.                 })
  41.                 .done(function(data) {
  42.                     window.location.reload();
  43.                 });
  44.         }
  45.     });
  46. });
  47.  
  48. function getTickets() {
  49.     var tickets = $("[class^=Ticket-][class$=-ammount]");
  50.     var result = [0, 0, 0, 0, 0];
  51.     var quality = 0;
  52.     var amount = 0;
  53.     for (var i = 0; i < tickets.length; i++) {
  54.         quality = parseInt($(tickets[i]).attr('class').replace(/[^0-9]+/g, ""));
  55.         amount = parseInt($(tickets[i]).html().trim())
  56.         result[quality - 1] = amount;
  57.     }
  58.     return result;
  59. }
  60.  
  61. function getLocationBonus(regionId, countryId) {
  62.     var ROI;
  63.     var bonusLocationId = [];
  64.     var bonusLocationRegions = [];
  65.  
  66.     for (var i = 0; i < regionsObj.length; i++) {
  67.         if (regionsObj[i].id == regionId) {
  68.             ROI = regionsObj[i];
  69.             break;
  70.         }
  71.     }
  72.     for (var i = 0; i < mapObj.length; i++) {
  73.         if ($.inArray(mapObj[i].regionId, ROI.neighbours) != -1 && mapObj[i].occupantId == countryId) {
  74.             bonusLocationId.push(mapObj[i].regionId);
  75.         }
  76.     }
  77.     for (var i = 0; i < regionsObj.length; i++) {
  78.         if ($.inArray(regionsObj[i].id, bonusLocationId) != -1) {
  79.             bonusLocationRegions.push(regionsObj[i]);
  80.         }
  81.         if (bonusLocationRegions.length == bonusLocationId.length) {
  82.             break;
  83.         }
  84.     }
  85.     bonusLocationRegions.push({
  86.         "bonus": "Location bonus:"
  87.     });
  88.     return bonusLocationRegions;
  89. }
  90.  
  91. function modyfiOrdersContainer() {
  92.     var ordersContainer = $('[style="position:relative;margin:10px auto;width:100%;padding:10px;height:auto;border-width:1px;border-style:solid;border-color:#3D6571;border-radius:3px;background-color:#F2F2F2;display:block;color:#080808;text-align:center;background-image:url(\'//cdn.e-sim.org//img/bgForElements/muOders.jpg\');background-size:100%;"]');
  93.     var fistChild = $(ordersContainer).children()[0];
  94.     var tickets = getTickets();
  95.     var location = [];
  96.     var regionId = getRegion();
  97.     var countryId = fightFor();
  98.  
  99.     if (isAttacker() && !isResistance()) {
  100.         location = getLocationBonus(regionId, countryId[1]);
  101.     } else {
  102.         for (var i = 0; i < regionsObj.length; i++) {
  103.             if (regionId == regionsObj[i].id) {
  104.                 location[0] = {
  105.                     "id": regionId,
  106.                     "name": regionsObj[i].name
  107.                 };
  108.                 location[1] = {
  109.                     "bonus": "Location bonus:"
  110.                 };
  111.                 break;
  112.             }
  113.         }
  114.  
  115.     }
  116.  
  117.     $(fistChild).append('<br><br><b>' + location[location.length - 1]["bonus"] + '<b>');
  118.     $(fistChild).append('<br><select id="regionId" name="regionId">');
  119.     $(fistChild).append('<br><select id="ticketQuality" name="ticketQuality">');
  120.  
  121.     if (location.length > 0) {
  122.         for (var i = 0; i < location.length - 1; i++) {
  123.             $('#regionId').append('<option value="' + location[i]['id'] + '">' + location[i]['name'] + '</option>');
  124.         }
  125.     } else {
  126.         $('#regionId').append('<option value="-1">No location bonus.</option>');
  127.     }
  128.  
  129.  
  130.     for (var i = 0; i < tickets.length - 1; i++) {
  131.         $('#ticketQuality').append('<option value="[' + (i + 1) + ', ' + tickets[i] + ']">Q' + (i + 1) + ' (' + tickets[i] + ', ' + (i - 4) * 10 + ' wellness to restore)</option>');
  132.     }
  133.     $('#ticketQuality').append('<option value="[5, ' + tickets[4] + ']">Q5 (' + tickets[4] + ')</option>');
  134.     $(fistChild).append('&nbsp;<input type="submit" value="Travel" id="Travel">');
  135. }
  136.  
  137. function isAttacker() {
  138.     var ordersContainer = $('[style="position:relative;margin:10px auto;width:100%;padding:10px;height:auto;border-width:1px;border-style:solid;border-color:#3D6571;border-radius:3px;background-color:#F2F2F2;display:block;color:#080808;text-align:center;background-image:url(\'//cdn.e-sim.org//img/bgForElements/muOders.jpg\');background-size:100%;"]');
  139.     var attacker = $('div[class*="flags-medium"]', ordersContainer)[1].className.replace('flags-medium ', "").trim();
  140.     var fightFor = $('div[class*="flags-medium"]', ordersContainer)[2].className.replace('flags-medium ', "").trim();
  141.  
  142.     if (fightFor == attacker) return true;
  143.  
  144.     return false;
  145. }
  146.  
  147. function isResistance() {
  148.     var ordersContainer = $('[style="position:relative;margin:10px auto;width:100%;padding:10px;height:auto;border-width:1px;border-style:solid;border-color:#3D6571;border-radius:3px;background-color:#F2F2F2;display:block;color:#080808;text-align:center;background-image:url(\'//cdn.e-sim.org//img/bgForElements/muOders.jpg\');background-size:100%;"]');
  149.     var resistance = $('b[style="font-weight: normal; font-size: 10px"]', ordersContainer);
  150.  
  151.     if (typeof resistance[0] != 'undefined') return true;
  152.  
  153.     return false;
  154. }
  155.  
  156. function fightFor() {
  157.     var ordersContainer = $('[style="position:relative;margin:10px auto;width:100%;padding:10px;height:auto;border-width:1px;border-style:solid;border-color:#3D6571;border-radius:3px;background-color:#F2F2F2;display:block;color:#080808;text-align:center;background-image:url(\'//cdn.e-sim.org//img/bgForElements/muOders.jpg\');background-size:100%;"]');
  158.     var fightFor = $('div[class*="flags-medium"]', ordersContainer)[2].className.replace('flags-medium ', "").trim();
  159.  
  160.     return [fightFor, countries[fightFor]];
  161. }
  162.  
  163. function getRegion() {
  164.     var ordersContainer = $('[style="position:relative;margin:10px auto;width:100%;padding:10px;height:auto;border-width:1px;border-style:solid;border-color:#3D6571;border-radius:3px;background-color:#F2F2F2;display:block;color:#080808;text-align:center;background-image:url(\'//cdn.e-sim.org//img/bgForElements/muOders.jpg\');background-size:100%;"]');
  165.     var battleId = $('[class="battleDiv"][data-link*="battle.html?id="]', ordersContainer).attr('data-link').replace(/[^0-9]+/g, "");
  166.     var battleContent;
  167.     $.ajax({
  168.         url: "/battle.html?id=" + battleId,
  169.         dataType: 'html',
  170.         async: false,
  171.         success: function(html) {
  172.             battleContent = html;
  173.         }
  174.     });
  175.     var region = $('#fightName a[class="fightFont"]', battleContent).attr("href").replace(/[^0-9]+/g, "");
  176.     return region;
  177. }
  178.  
  179. function getDataFromApi() {
  180.     $.ajax({
  181.         url: "/apiRegions.html",
  182.         dataType: 'json',
  183.         async: false,
  184.         success: function(data) {
  185.             regionsObj = data;
  186.         }
  187.     });
  188.     $.ajax({
  189.         url: "/apiMap.html",
  190.         dataType: 'json',
  191.         async: false,
  192.         success: function(data) {
  193.             mapObj = data;
  194.         }
  195.     });
  196. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement