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.8 KiB
JavaScript

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