chore: fix some of the translations

This commit is contained in:
Dawid Wysokiński 2021-06-12 07:49:43 +02:00
parent 0dc160d19f
commit 552b6d201e
18 changed files with 30 additions and 24 deletions

View File

@ -10,7 +10,7 @@
## Scripts ## Scripts
- [Latest ennoblements](#1-latest-ennoblements) - [The latest ennoblements](#1-the-latest-ennoblements)
- [Extended player profile](#2-extended-player-profile) - [Extended player profile](#2-extended-player-profile)
- [Extended tribe profile](#3-extended-tribe-profile) - [Extended tribe profile](#3-extended-tribe-profile)
- [Extended village profile](#4-extended-village-profile) - [Extended village profile](#4-extended-village-profile)
@ -21,7 +21,7 @@
- ['In A Day' tribe ranking generator](#9-in-a-day-tribe-ranking-generator) - ['In A Day' tribe ranking generator](#9-in-a-day-tribe-ranking-generator)
- [War stats generator](#10-war-stats-generator) - [War stats generator](#10-war-stats-generator)
### 1. Latest ennoblements ### 1. The latest ennoblements
[Code](https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/latestEnnoblements.js) [Code](https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/latestEnnoblements.js)

View File

@ -27,21 +27,24 @@
searchBonusBarbarianVillages: 'Wyszukaj koczownicze', searchBonusBarbarianVillages: 'Wyszukaj koczownicze',
village: 'Wioska', village: 'Wioska',
distance: 'Dystans', distance: 'Dystans',
action: 'Akcja' action: 'Akcja',
center: 'Wycentruj'
}, },
en_DK: { en_DK: {
actualCoords: 'Actual coords', actualCoords: 'Actual coords',
searchBonusBarbarianVillages: 'Search bonus barbarian villages', searchBonusBarbarianVillages: 'Search bonus barbarian villages',
village: 'Village', village: 'Village',
distance: 'Distance', distance: 'Distance',
action: 'Action' action: 'Action',
center: 'Center'
}, },
de_DE: { de_DE: {
actualCoords: 'Aktuelle Koordinaten', actualCoords: 'Aktuelle Koordinaten',
searchBonusBarbarianVillages: 'Suche Bonus-Barbarendörfer', searchBonusBarbarianVillages: 'Suche Bonus-Barbarendörfer',
village: 'Dorf', village: 'Dorf',
distance: 'Distanz', distance: 'Distanz',
action: 'Aktion' action: 'Aktion',
center: 'Center'
} }
}; };
var $3b197ddc404523dce25bd8470f854619$export$default = () => $3b197ddc404523dce25bd8470f854619$var$translations[window.game_data.locale] || $3b197ddc404523dce25bd8470f854619$var$translations.en_DK; var $3b197ddc404523dce25bd8470f854619$export$default = () => $3b197ddc404523dce25bd8470f854619$var$translations[window.game_data.locale] || $3b197ddc404523dce25bd8470f854619$var$translations.en_DK;
@ -186,7 +189,7 @@
return bonuses; return bonuses;
}; };
const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$buildTableBodyHTML = villages => { const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$buildTableBodyHTML = villages => {
return ("\n <tbody>\n <tr>\n <th>\n ").concat($61671ab24a4170eb0a1c7d9e6ffb22e6$var$translations.village, "\n </th>\n <th>\n ").concat($61671ab24a4170eb0a1c7d9e6ffb22e6$var$translations.distance, "\n </th>\n <th>\n ").concat($61671ab24a4170eb0a1c7d9e6ffb22e6$var$translations.action, "\n </th>\n </tr>\n ").concat(Array.isArray(villages) ? villages.map(village => ("<tr>\n <td>\n <a href=\"").concat($6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageURL(village.id), "\">\n ").concat($6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageName(village.name, village.x, village.y), "\n </a>\n </td>\n <td>\n ").concat(village.distance.toFixed(1), "\n </td>\n <td>\n <a href=\"#\" onclick=\"return TWMap.focusUserSpecified(").concat(village.x, ", ").concat(village.y, ")\">Center</a>\n </td>\n </tr>")).join('') : '', "\n </tbody>\n "); return ("\n <tbody>\n <tr>\n <th>\n ").concat($61671ab24a4170eb0a1c7d9e6ffb22e6$var$translations.village, "\n </th>\n <th>\n ").concat($61671ab24a4170eb0a1c7d9e6ffb22e6$var$translations.distance, "\n </th>\n <th>\n ").concat($61671ab24a4170eb0a1c7d9e6ffb22e6$var$translations.action, "\n </th>\n </tr>\n ").concat(Array.isArray(villages) ? villages.map(village => ("<tr>\n <td>\n <a href=\"").concat($6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageURL(village.id), "\">\n ").concat($6a639e352c067a7850a9fa8cdc59ffca$export$buildVillageName(village.name, village.x, village.y), "\n </a>\n </td>\n <td>\n ").concat(village.distance.toFixed(1), "\n </td>\n <td>\n <a href=\"#\" onclick=\"return TWMap.focusUserSpecified(").concat(village.x, ", ").concat(village.y, ")\">").concat($61671ab24a4170eb0a1c7d9e6ffb22e6$var$translations.center, "</a>\n </td>\n </tr>")).join('') : '', "\n </tbody>\n ");
}; };
const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$updateActualCoords = () => { const $61671ab24a4170eb0a1c7d9e6ffb22e6$var$updateActualCoords = () => {
document.querySelector('#' + $61671ab24a4170eb0a1c7d9e6ffb22e6$var$ACTUAL_COORDS_ID).innerHTML = ("").concat($61671ab24a4170eb0a1c7d9e6ffb22e6$var$translations.actualCoords, ": <strong>").concat(TWMap.pos.join('|'), "</strong>"); document.querySelector('#' + $61671ab24a4170eb0a1c7d9e6ffb22e6$var$ACTUAL_COORDS_ID).innerHTML = ("").concat($61671ab24a4170eb0a1c7d9e6ffb22e6$var$translations.actualCoords, ": <strong>").concat(TWMap.pos.join('|'), "</strong>");

View File

@ -2072,7 +2072,7 @@
const $a777d6796a2564869cad39f35c35c293$var$translations = { const $a777d6796a2564869cad39f35c35c293$var$translations = {
pl_PL: { pl_PL: {
title: 'Dzienne osiągnięcia - prawdopodobni gracze', title: 'Dzienne osiągnięcia - prawdopodobni gracze',
warning: 'Pamiętaj! Ten skrypt pokazuje wykalkulowane przez TribalWars wyniki, nie pokonane jednostki.', warning: 'Pamiętaj! Ten skrypt pokazuje wyliczone przez TribalWars wyniki a nie pokonane jednostki.',
aotd: 'Agresor dnia', aotd: 'Agresor dnia',
dotd: 'Obrońca dnia', dotd: 'Obrońca dnia',
sotd: 'Pomocnik dnia', sotd: 'Pomocnik dnia',

View File

@ -940,7 +940,7 @@
tribe: false tribe: false
}); });
} catch (error) { } catch (error) {
console.log('cannot load player history', error); console.log('couldnt load player history', error);
} }
} }
}; };

View File

@ -1060,7 +1060,7 @@
onPageChange: $921f485217c0c6d00ec9dfbf07cee198$var$handleShowTribeHistoryClick onPageChange: $921f485217c0c6d00ec9dfbf07cee198$var$handleShowTribeHistoryClick
}); });
} catch (error) { } catch (error) {
console.log('cannot load tribe history', error); console.log('couldnt load tribe history', error);
} }
} }
}; };

View File

@ -142,7 +142,7 @@
devNote: 'Informacja od autora - Właśnie uruchomiłem nową stronę ze statystykami, nie zapomnij jej sprawdzić :).' devNote: 'Informacja od autora - Właśnie uruchomiłem nową stronę ze statystykami, nie zapomnij jej sprawdzić :).'
}, },
en_DK: { en_DK: {
showLatestEnnoblements: 'Show latest ennoblements', showLatestEnnoblements: 'Show the latest ennoblements',
village: 'Village', village: 'Village',
newOwner: 'New owner', newOwner: 'New owner',
newOwnerTribe: 'New owner tribe', newOwnerTribe: 'New owner tribe',
@ -213,12 +213,12 @@
return obj; return obj;
} }
// ==UserScript== // ==UserScript==
// @name Latest ennoblements // @name The latest ennoblements
// @namespace https://github.com/tribalwarshelp/scripts // @namespace https://github.com/tribalwarshelp/scripts
// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/latestEnnoblements.js // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/latestEnnoblements.js
// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/latestEnnoblements.js // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/latestEnnoblements.js
// @version 1.1.1 // @version 1.1.1
// @description Show the latest ennoblements // @description Shows the latest ennoblements
// @author Kichiyaki https://dwysokinski.me/ // @author Kichiyaki https://dwysokinski.me/
// @match *://*/game.php* // @match *://*/game.php*
// @grant none // @grant none

View File

@ -1 +1 @@
!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)})()}(); !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)})()}();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -130,7 +130,7 @@ const buildTableBodyHTML = villages => {
<td> <td>
<a href="#" onclick="return TWMap.focusUserSpecified(${ <a href="#" onclick="return TWMap.focusUserSpecified(${
village.x village.x
}, ${village.y})">Center</a> }, ${village.y})">${translations.center}</a>
</td> </td>
</tr>` </tr>`
) )

View File

@ -609,7 +609,7 @@ const handleShowPlayerHistoryClick = async e => {
tribe: false, tribe: false,
}); });
} catch (error) { } catch (error) {
console.log('cannot load player history', error); console.log('couldnt load player history', error);
} }
} }
}; };

View File

@ -450,7 +450,7 @@ const handleShowTribeHistoryClick = async e => {
onPageChange: handleShowTribeHistoryClick, onPageChange: handleShowTribeHistoryClick,
}); });
} catch (error) { } catch (error) {
console.log('cannot load tribe history', error); console.log('couldnt load tribe history', error);
} }
} }
}; };

View File

@ -5,6 +5,7 @@ const translations = {
village: 'Wioska', village: 'Wioska',
distance: 'Dystans', distance: 'Dystans',
action: 'Akcja', action: 'Akcja',
center: 'Wycentruj',
}, },
en_DK: { en_DK: {
actualCoords: 'Actual coords', actualCoords: 'Actual coords',
@ -12,6 +13,7 @@ const translations = {
village: 'Village', village: 'Village',
distance: 'Distance', distance: 'Distance',
action: 'Action', action: 'Action',
center: 'Center',
}, },
de_DE: { de_DE: {
actualCoords: 'Aktuelle Koordinaten', actualCoords: 'Aktuelle Koordinaten',
@ -19,6 +21,7 @@ const translations = {
village: 'Dorf', village: 'Dorf',
distance: 'Distanz', distance: 'Distanz',
action: 'Aktion', action: 'Aktion',
center: 'Center',
}, },
}; };

View File

@ -2,7 +2,7 @@ const translations = {
pl_PL: { pl_PL: {
title: 'Dzienne osiągnięcia - prawdopodobni gracze', title: 'Dzienne osiągnięcia - prawdopodobni gracze',
warning: warning:
'Pamiętaj! Ten skrypt pokazuje wykalkulowane przez TribalWars wyniki, nie pokonane jednostki.', 'Pamiętaj! Ten skrypt pokazuje wyliczone przez TribalWars wyniki a nie pokonane jednostki.',
aotd: 'Agresor dnia', aotd: 'Agresor dnia',
dotd: 'Obrońca dnia', dotd: 'Obrońca dnia',
sotd: 'Pomocnik dnia', sotd: 'Pomocnik dnia',

View File

@ -14,7 +14,7 @@ const translations = {
'Informacja od autora - Właśnie uruchomiłem nową stronę ze statystykami, nie zapomnij jej sprawdzić :).', 'Informacja od autora - Właśnie uruchomiłem nową stronę ze statystykami, nie zapomnij jej sprawdzić :).',
}, },
en_DK: { en_DK: {
showLatestEnnoblements: 'Show latest ennoblements', showLatestEnnoblements: 'Show the latest ennoblements',
village: 'Village', village: 'Village',
newOwner: 'New owner', newOwner: 'New owner',
newOwnerTribe: 'New owner tribe', newOwnerTribe: 'New owner tribe',

View File

@ -9,12 +9,12 @@ import getServerVersionCode from './utils/getServerVersionCode';
import loadTranslations from './i18n/latestEnnoblements'; import loadTranslations from './i18n/latestEnnoblements';
// ==UserScript== // ==UserScript==
// @name Latest ennoblements // @name The latest ennoblements
// @namespace https://github.com/tribalwarshelp/scripts // @namespace https://github.com/tribalwarshelp/scripts
// @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/latestEnnoblements.js // @updateURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/latestEnnoblements.js
// @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/latestEnnoblements.js // @downloadURL https://raw.githubusercontent.com/tribalwarshelp/scripts/master/dist/latestEnnoblements.js
// @version 1.1.1 // @version 1.1.1
// @description Show the latest ennoblements // @description Shows the latest ennoblements
// @author Kichiyaki https://dwysokinski.me/ // @author Kichiyaki https://dwysokinski.me/
// @match *://*/game.php* // @match *://*/game.php*
// @grant none // @grant none