This repository has been archived on 2023-01-26. You can view files and clone it, but cannot push or open issues or pull requests.
scripts-old/dist/quickbar/bonusBarbarianVillageFinder.js

1 line
4.7 KiB
JavaScript

!function(){const t="https://api.tribalwarshelp.com/graphql";var n=function(){let{query:n,variables:e={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return fetch(t,{method:"POST",body:JSON.stringify({query:n,variables:e}),headers:{"Content-Type":"application/json"}}).then((t=>t.json())).then((t=>{let{data:n,errors:e}=t;if(e&&Array.isArray(e)&&e.length>0)throw new Error(e[0].message);return new Promise((t=>t(n)))}))};const e={pl_PL:{actualCoords:"Aktualne koordynaty",searchBonusBarbarianVillages:"Wyszukaj koczownicze",village:"Wioska",distance:"Dystans",action:"Akcja"},en_DK:{actualCoords:"Actual coords",searchBonusBarbarianVillages:"Search bonus barbarian villages",village:"Village",distance:"Distance",action:"Action"},de_DE:{actualCoords:"Aktuelle Koordinaten",searchBonusBarbarianVillages:"Suche Bonus-Barbarendörfer",village:"Dorf",distance:"Distanz",action:"Aktion"}};const a=(t,n,e,a)=>{const r=t-e,o=n-a;return Math.sqrt(r*r+o*o)};function r(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable}))),e.push.apply(e,a)}return e}function o(t){for(var n=1;n<arguments.length;n++){var e=null!=arguments[n]?arguments[n]:{};n%2?r(Object(e),!0).forEach((function(n){i(t,n,e[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):r(Object(e)).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}))}return t}function i(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}const c=window.location.host.split(".")[0],s="bonusBarbarianVillageFinderTable",l="actualCoords",u=e[window.game_data.locale]||e.en_DK;let d;const b=(t,n)=>({query:"\n query villages($server: String!, $filter: VillageFilter, $sort: [String!], $offset: Int) {\n villages(server: $server, filter: $filter, offset: $offset, sort: $sort) {\n total\n items {\n id\n name\n bonus\n x\n y\n }\n }\n }\n",variables:{server:c,sort:["id DESC"],filter:{bonus:t,playerID:[0]},offset:n}}),p=async t=>{t.preventDefault();const e=await(async t=>{const{villages:e}=await n(b(t,0));for(let a=e.length;a<e.total;a+=1e3){const a=await n(b(t,0));e.items=[...e.items,...a.villages.items]}return e})(parseInt(t.target[0].value)),r=TWMap.pos;e.items=e.items.map((t=>o(o({},t),{},{distance:a(r[0],r[1],t.x,t.y)}))).sort(((t,n)=>t.distance-n.distance)),document.querySelector("#bonusBarbarianVillageFinderTable").innerHTML=f(e.items)},f=t=>"\n <tbody>\n <tr>\n <th>\n ".concat(u.village,"\n </th>\n <th>\n ").concat(u.distance,"\n </th>\n <th>\n ").concat(u.action,"\n </th>\n </tr>\n ").concat(Array.isArray(t)?t.map((t=>{return'<tr>\n <td>\n <a href="'.concat((n=t.id,window.location.origin+TribalWars.buildURL("",{screen:"info_village",id:n})),'">\n ').concat(function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:500,e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:500;const a="K"+String(e)[0]+String(n)[0];return"".concat(t," (").concat(n,"|").concat(e,") ").concat(a)}(t.name,t.x,t.y),"\n </a>\n </td>\n <td>\n ").concat(t.distance.toFixed(1),'\n </td>\n <td>\n <a href="#" onclick="return TWMap.focusUserSpecified(').concat(t.x,", ").concat(t.y,')">Center</a>\n </td>\n </tr>');var n})).join(""):"","\n </tbody>\n "),g=()=>{document.querySelector("#actualCoords").innerHTML="".concat(u.actualCoords,": <strong>").concat(TWMap.pos.join("|"),"</strong>")};(()=>{const t='\n <p id="'.concat(l,'"></p>\n <form>\n <select>\n ').concat((()=>{let t=[];for(let n in TWMap.bonus_data)t.push({value:n,text:TWMap.bonus_data[n].text});return t})().map((t=>'<option value="'.concat(t.value,'">').concat(t.text,"</option>"))).join(""),'\n </select>\n <button type="submit">').concat(u.searchBonusBarbarianVillages,'</button>\n </form>\n <table class="vis" style="width: 100%;" id="').concat(s,'">\n ').concat(f(),"\n </table>\n ");d||(d=document.createElement("div"),d.classList.add("containerBorder"),d.style.clear="both",document.querySelector("#map_big").appendChild(d)),d.innerHTML=t,d.querySelector("form").addEventListener("submit",p),g(),setInterval(g,1e3)})()}();