var room, gameContext, intervalSelPlayer, intervalOylama, intervalAFK, intervalSpam, intervalMesaj, intervalMesaj2, intervalMesaj3, timeoutPenGol, timeoutPenSure, timeoutStartPen, intervalBanKaldir, intervalSetAvatar, intervalSetMevkiPos, intervalUpdateSureliliYasaklilar, intervalTempStas, intervalBooster; //#region anoriginalnick-sayac var intervalPCDaily, intervalPCWeekly; //#endregion anoriginalnick-sayac var intervalYanmaAnim, animYaniyor = false; var yanmaIndex = 0; var MapMod = { NORMAL: 0, SADE: 1, POWER: 2, }; var odaNumarasi; var macCount = 0; function initCastles() { let map = JSON.parse(SETTINGS.Maps.Dizilim); let vs = map["vertexes"]; let castles = []; let rvs = vs.filter((x) => x["trait"] && x["trait"].startsWith("redPos")); rvs.sort(function (av, bv) { let a = parseInt(av["trait"].replace("redPos", "")); let b = parseInt(bv["trait"].replace("redPos", "")); return a - b; }); let bvs = vs.filter((x) => x["trait"] && x["trait"].startsWith("bluePos")); bvs.sort(function (av, bv) { let a = parseInt(av["trait"].replace("bluePos", "")); let b = parseInt(bv["trait"].replace("bluePos", "")); return a - b; }); let iv = 0; rvs.forEach((v) => { let m = parseInt(v["trait"].replace("redPos", "")); castles.push({ id: iv, x: v["x"], y: v["y"], team: TeamEnum.RED, avatar: m, }); iv++; }); bvs.forEach((v) => { let m = parseInt(v["trait"].replace("bluePos", "")); castles.push({ id: iv, x: v["x"], y: v["y"], team: TeamEnum.BLUE, avatar: m, }); iv++; }); SETTINGS.Castles = castles; } var webHooks = { TEST: { macinAdami: "https://canary.discord.com/api/webhooks/954417320409829416/uFvczrPCALqAdW88X8-1CUTxY94teMxM3ZjujRGJnLVV92_13yseIBkY_-iVoABvoUjP", chat: null, admin: null, }, 1: { macinAdami: "https://canary.discord.com/api/webhooks/954417320409829416/uFvczrPCALqAdW88X8-1CUTxY94teMxM3ZjujRGJnLVV92_13yseIBkY_-iVoABvoUjP", chat: "https://canary.discord.com/api/webhooks/954417320409829416/uFvczrPCALqAdW88X8-1CUTxY94teMxM3ZjujRGJnLVV92_13yseIBkY_-iVoABvoUjP", admin: "https://canary.discord.com/api/webhooks/954417320409829416/uFvczrPCALqAdW88X8-1CUTxY94teMxM3ZjujRGJnLVV92_13yseIBkY_-iVoABvoUjP", }, 2: { macinAdami: "https://canary.discord.com/api/webhooks/954417320409829416/uFvczrPCALqAdW88X8-1CUTxY94teMxM3ZjujRGJnLVV92_13yseIBkY_-iVoABvoUjP", chat: "https://canary.discord.com/api/webhooks/954417320409829416/uFvczrPCALqAdW88X8-1CUTxY94teMxM3ZjujRGJnLVV92_13yseIBkY_-iVoABvoUjP", admin: "https://canary.discord.com/api/webhooks/954417320409829416/uFvczrPCALqAdW88X8-1CUTxY94teMxM3ZjujRGJnLVV92_13yseIBkY_-iVoABvoUjP", }, 3: { macinAdami: "https://canary.discord.com/api/webhooks/954417320409829416/uFvczrPCALqAdW88X8-1CUTxY94teMxM3ZjujRGJnLVV92_13yseIBkY_-iVoABvoUjP", chat: "https://discord.com/api/webhooks/853692675353477170/P4Qpj6p-qfqndmByebLhGFeD7w5ea5l01ugnZ7AYoMd6kWdFzFAkV-xJXVkLdB0eJ1bZ", admin: "https://discord.com/api/webhooks/842291226932936714/KVLV2so30DgIbyiDFC3_kfUyDMmfHn2Fxh-L5Zl_6Cxoai3rCgPfqT1OInT7l26OXmEy", }, 4: { macinAdami: "https://canary.discord.com/api/webhooks/954417320409829416/uFvczrPCALqAdW88X8-1CUTxY94teMxM3ZjujRGJnLVV92_13yseIBkY_-iVoABvoUjP", chat: "https://canary.discord.com/api/webhooks/954417320409829416/uFvczrPCALqAdW88X8-1CUTxY94teMxM3ZjujRGJnLVV92_13yseIBkY_-iVoABvoUjP", admin: "https://canary.discord.com/api/webhooks/954417320409829416/uFvczrPCALqAdW88X8-1CUTxY94teMxM3ZjujRGJnLVV92_13yseIBkY_-iVoABvoUjP", }, 5: { macinAdami: "https://discord.com/api/webhooks/799783890008145981/StJF8lrwbTy6n1gzt1_res2zfzu2Q1hD-qdu_8h4C4CnfxQJbutjCKX8hqm4_-35v2QB", chat: "https://discord.com/api/webhooks/799726559187304478/Vv9NIBO28aA6vri0kuvMnXkI89Xg0QAmdDQORIwOfXMkBiVhKadeQdBV1X8dyAJXawft", admin: "https://discord.com/api/webhooks/811245495703830548/Iv7uWYpl8-LFewauMQU90xoGKPlyqx_Iy07j1XSp2BMCtsScKuoXjZx4qZd1eQA77ila", }, 6: { macinAdami: "https://discord.com/api/webhooks/799783914053959682/gr8BEwXI1hktrF44E0qIeC7UZFX3zaIkolbpJybJ_lpF6Kp5nxLZK66pYHp5btgWS7Qe", chat: "https://discord.com/api/webhooks/799726623888900097/h8gJ7FqysIOWh46SmEFDQZowpCpcQRUvDfCNdwKvbOUMMdZ6GK_fZiU8gN0kTo-E_3HW", admin: "https://discord.com/api/webhooks/811245588212350984/AUb_jUzxcibP8CE0IB8dAMr4JrThRETegeR1eReEKYBOrSAAVa73DqT3ILtS7sp0j0Ix", }, 7: { macinAdami: null, chat: "https://canary.discord.com/api/webhooks/954417320409829416/uFvczrPCALqAdW88X8-1CUTxY94teMxM3ZjujRGJnLVV92_13yseIBkY_-iVoABvoUjP", admin: "https://discord.com/api/webhooks/811251006972624956/_1kDz1tYKvKFClnpEGKpq25shMrfsnzDrBYnGvPnusNSeoX4KVRLeJL77QwwLvlVuqhZ", }, 8: { macinAdami: null, chat: "https://canary.discord.com/api/webhooks/954417320409829416/uFvczrPCALqAdW88X8-1CUTxY94teMxM3ZjujRGJnLVV92_13yseIBkY_-iVoABvoUjP", admin: "", }, 9: { macinAdami: null, chat: null, admin: "https://canary.discord.com/api/webhooks/954417320409829416/uFvczrPCALqAdW88X8-1CUTxY94teMxM3ZjujRGJnLVV92_13yseIBkY_-iVoABvoUjP", }, 10: { macinAdami: null, chat: null, admin: null, }, 11: { macinAdami: null, chat: null, admin: null, }, 12: { macinAdami: null, chat: null, admin: null, }, }; function timeNow() { let d = new Date(); let hours = d.getHours() - 1; let h = (hours < 10 ? "0" : "") + hours; let m = (d.getMinutes() < 10 ? "0" : "") + d.getMinutes(); return h + ":" + m; } function logSumAndMed(sta, key1, key2 = null) { let sum = ""; //calcSum(sta, key1, key2); let med = calcMedian(sta, key1, key2); return sum + " " + med; } function calcSum(sta, key1, key2 = null) { let array = []; for (let key in sta) { array.push({ name: key, value: key2 == null ? sta[key][key1] : sta[key][key1][key2], }); } if (array.length == 0) { return 0; } let sum = array.reduce((sum, val) => { return sum + val; }); return sum; } function calcMedian(sta, key1, key2 = null) { let array = []; for (let key in sta) { array.push({ name: key, value: key2 == null ? sta[key][key1] : sta[key][key1][key2], }); } if (array.length == 0) { return 0; } let sorted = array.sort(function (a, b) { return a.value < b.value ? 1 : b.value < a.value ? -1 : 0; }); let mid = Math.ceil(sorted.length / 2); let median = sorted.length % 2 == 0 ? (sorted[mid].value + sorted[mid - 1].value) / 2 : sorted[mid - 1].value; return median; } function calcMean(sta, len, key1, key2 = null) { let array = []; for (let key in sta) { array.push(key2 == null ? sta[key][key1] : sta[key][key1][key2]); } let sum = array.reduce((sum, val) => (sum += val)); return len == 0 ? 0 : (sum / len).toFixed(5); } function sendMacinAdamiDiscord(contentArr, index = 0) { let url = webHooks[odaNumarasi]; if (url == null || url.macinAdami == null) { return; } //console.log("st: " + index); let content = contentArr[index]; if (content == null) { return; } let temp = { i: 0 }; var xhr = new XMLHttpRequest(); xhr.open("POST", url.macinAdami, true); xhr.setRequestHeader("Content-Type", "application/json"); xhr.onreadystatechange = function () { //console.log("temp:" + temp.i + "i: " + index + " stat:" + xhr.status + " resp:" + xhr.response); if (xhr.status === 204) { temp.i++; if (temp.i == 1) { return; } setTimeout(() => { index++; sendMacinAdamiDiscord(contentArr, index); }, 1000); //console.log(xhr.response); } //else if (xhr.status === 429) { // setTimeout(() => { // sendMacinAdamiDiscord(contentArr, index); // }, 1000); //} }; var data = JSON.stringify({ username: macCount.toString(), content: content, }); xhr.send(data); //for (let i = 0; i < contentArr.length; i++) { // setTimeout(() => { // console.log("st: " + i); // let content = contentArr[i]; // var xhr = new XMLHttpRequest(); // xhr.open('POST', macinAdamiWebHook, true); // xhr.setRequestHeader('Content-Type', 'application/json'); // xhr.onreadystatechange = function () { // console.log("i: " + i + " stat:" + xhr.status + " resp:" + xhr.response); // //if (/*xhr.readyState === 4 &&*/ xhr.status === 200) { // // setTimeout(() => { // // index++; // // sendMacinAdamiDiscord(contentArr, index); // // }, 100); // // //console.log(xhr.response); // //} // //else if (xhr.status === 429) { // // setTimeout(() => { // // sendMacinAdamiDiscord(contentArr, index); // // }, 1000); // //} // }; // var data = JSON.stringify({ username: macCount.toString(), content: content }); // xhr.send(data); // }, 1000 * i); } function sendDiscord(username, content, url) { var xhr = new XMLHttpRequest(); xhr.open("POST", url, true); xhr.setRequestHeader("Content-Type", "application/json"); xhr.onreadystatechange = function () { if (xhr.readyState === 4 && xhr.status === 200) { //console.log(xhr.response); } }; var data = JSON.stringify({ username: username, content: content }); xhr.send(data); } function sendChatToDc(username, message) { let url = webHooks[odaNumarasi]; if (url == null || url.chat == null) { return; } sendDiscord( "", "**" + username + ":** " + message.replace("@", " "), url.chat ); } function sendAdminLog(username, exit = false) { //let url = webHooks[odaNumarasi]; //if (url == null || url.admin == null) { // return; //} //let durum = exit ? "çıktı" : "girdi"; //sendDiscord(username + " - " + durum, '**' + username + ':** ' + timeNow() + " " + durum, url.admin); } function sendCountOfPlayersToDc() { //var xhr = new XMLHttpRequest(); //xhr.open('POST', "https://discord.com/api/webhooks/772552802211201034/eDIq7M2EejhLU6lgG_fcxDlyJZdkGJqFfqGCZo8TRdwopiaf3l1IGdaTxt5FGq6c-9VM", true); //xhr.setRequestHeader('Content-Type', 'application/json'); //xhr.onreadystatechange = function () { // if (xhr.readyState === 4 && xhr.status === 200) { // } //}; //var data = JSON.stringify({ username: odaNumarasi, content: room.getPlayerList().length }); //xhr.send(data); } function getColorBlinkYanma(i) { let arr = [ "F", "E", "D", "C", "B", "A", "9", "8", "7", "6", "5", "4", "3", "2", "1", "0", ].reverse(); if (i >= arr.length) { return -1; } let c = arr[i]; let ct = "0x"; ct += c + c + "0000"; return parseInt(ct); } function procYanmaAnim() { resetYanmaAnim(); intervalYanmaAnim = setInterval(() => { let b = getColorBlinkYanma(yanmaIndex++); if (b == -1) { yanmaIndex = 0; b = getColorBlinkYanma(yanmaIndex++); } room.setDiscProperties(0, { color: b }); }, 40); animYaniyor = true; } function resetYanmaAnim() { clearInterval(intervalYanmaAnim); room.setDiscProperties(0, { color: 0xffffff }); yanmaIndex = 0; animYaniyor = false; } var dcSec = 0; function timePad(t) { var st = "" + t; while (st.length < 2) st = "0" + st; return st; } function getTimeToText(time) { let res = ""; if (time / (1000 * 60 * 60 * 24 * 365) >= 1) { res += parseInt(time / (1000 * 60 * 60 * 24 * 365)) + " yıl "; time = time % (1000 * 60 * 60 * 24 * 365); } if (time / (1000 * 60 * 60 * 24 * 30) >= 1) { res += parseInt(time / (1000 * 60 * 60 * 24 * 30)) + " ay "; time = time % (1000 * 60 * 60 * 24 * 30); } if (time / (1000 * 60 * 60 * 24 * 7) >= 1) { res += parseInt(time / (1000 * 60 * 60 * 24 * 7)) + " hafta "; time = time % (1000 * 60 * 60 * 24 * 7); } if (time / (1000 * 60 * 60 * 24) >= 1) { res += parseInt(time / (1000 * 60 * 60 * 24)) + " gün "; time = time % (1000 * 60 * 60 * 24); } if (time / (1000 * 60 * 60) >= 1) { res += parseInt(time / (1000 * 60 * 60)) + " saat "; time = time % (1000 * 60 * 60); } if (time / (1000 * 60) >= 1) { res += parseInt(time / (1000 * 60)) + " dakika "; time = time % (1000 * 60); } if (time / 1000 >= 1) { res += parseInt(time / 1000) + " saniye "; time = time % 1000; } return res; } var defaultDiacriticsRemovalMap = [ { base: "A", letters: /[\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F]/g, }, { base: "AA", letters: /[\uA732]/g }, { base: "AE", letters: /[\u00C6\u01FC\u01E2]/g }, { base: "AO", letters: /[\uA734]/g }, { base: "AU", letters: /[\uA736]/g }, { base: "AV", letters: /[\uA738\uA73A]/g }, { base: "AY", letters: /[\uA73C]/g }, { base: "B", letters: /[\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181]/g, }, { base: "C", letters: /[\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E]/g, }, { base: "D", letters: /[\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779]/g, }, { base: "DZ", letters: /[\u01F1\u01C4]/g }, { base: "Dz", letters: /[\u01F2\u01C5]/g }, { base: "E", letters: /[\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E]/g, }, { base: "F", letters: /[\u0046\u24BB\uFF26\u1E1E\u0191\uA77B]/g }, { base: "G", letters: /[\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E]/g, }, { base: "H", letters: /[\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D]/g, }, { base: "I", letters: /[\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197]/g, }, { base: "J", letters: /[\u004A\u24BF\uFF2A\u0134\u0248]/g }, { base: "K", letters: /[\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2]/g, }, { base: "L", letters: /[\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780]/g, }, { base: "LJ", letters: /[\u01C7]/g }, { base: "Lj", letters: /[\u01C8]/g }, { base: "M", letters: /[\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C]/g }, { base: "N", letters: /[\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4]/g, }, { base: "NJ", letters: /[\u01CA]/g }, { base: "Nj", letters: /[\u01CB]/g }, { base: "O", letters: /[\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C]/g, }, { base: "OI", letters: /[\u01A2]/g }, { base: "OO", letters: /[\uA74E]/g }, { base: "OU", letters: /[\u0222]/g }, { base: "P", letters: /[\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754]/g, }, { base: "Q", letters: /[\u0051\u24C6\uFF31\uA756\uA758\u024A]/g }, { base: "R", letters: /[\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782]/g, }, { base: "S", letters: /[\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784]/g, }, { base: "T", letters: /[\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786]/g, }, { base: "TZ", letters: /[\uA728]/g }, { base: "U", letters: /[\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244]/g, }, { base: "V", letters: /[\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245]/g }, { base: "VY", letters: /[\uA760]/g }, { base: "W", letters: /[\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72]/g, }, { base: "X", letters: /[\u0058\u24CD\uFF38\u1E8A\u1E8C]/g }, { base: "Y", letters: /[\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE]/g, }, { base: "Z", letters: /[\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762]/g, }, { base: "a", letters: /[\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250]/g, }, { base: "aa", letters: /[\uA733]/g }, { base: "ae", letters: /[\u00E6\u01FD\u01E3]/g }, { base: "ao", letters: /[\uA735]/g }, { base: "au", letters: /[\uA737]/g }, { base: "av", letters: /[\uA739\uA73B]/g }, { base: "ay", letters: /[\uA73D]/g }, { base: "b", letters: /[\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253]/g, }, { base: "c", letters: /[\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184]/g, }, { base: "d", letters: /[\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A]/g, }, { base: "dz", letters: /[\u01F3\u01C6]/g }, { base: "e", letters: /[\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD]/g, }, { base: "f", letters: /[\u0066\u24D5\uFF46\u1E1F\u0192\uA77C]/g }, { base: "g", letters: /[\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F]/g, }, { base: "h", letters: /[\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265]/g, }, { base: "hv", letters: /[\u0195]/g }, { base: "i", letters: /[\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131]/g, }, { base: "j", letters: /[\u006A\u24D9\uFF4A\u0135\u01F0\u0249]/g }, { base: "k", letters: /[\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3]/g, }, { base: "l", letters: /[\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747]/g, }, { base: "lj", letters: /[\u01C9]/g }, { base: "m", letters: /[\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F]/g }, { base: "n", letters: /[\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5]/g, }, { base: "nj", letters: /[\u01CC]/g }, { base: "o", letters: /[\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275]/g, }, { base: "oi", letters: /[\u01A3]/g }, { base: "ou", letters: /[\u0223]/g }, { base: "oo", letters: /[\uA74F]/g }, { base: "p", letters: /[\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755]/g, }, { base: "q", letters: /[\u0071\u24E0\uFF51\u024B\uA757\uA759]/g }, { base: "r", letters: /[\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783]/g, }, { base: "s", letters: /[\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B]/g, }, { base: "t", letters: /[\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787]/g, }, { base: "tz", letters: /[\uA729]/g }, { base: "u", letters: /[\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289]/g, }, { base: "v", letters: /[\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C]/g }, { base: "vy", letters: /[\uA761]/g }, { base: "w", letters: /[\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73]/g, }, { base: "x", letters: /[\u0078\u24E7\uFF58\u1E8B\u1E8D]/g }, { base: "y", letters: /[\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF]/g, }, { base: "z", letters: /[\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763]/g, }, ]; function sekilliHarfToNormal(str) { for (var i = 0; i < defaultDiacriticsRemovalMap.length; i++) { str = str.replace( defaultDiacriticsRemovalMap[i].letters, defaultDiacriticsRemovalMap[i].base ); } return str; } function getColorBlinkTeam(i, team) { let arr = [ "F", "E", "D", "C", "B", "A", "9", "8", "7", "6", "5", "4", "3", "2", "1", "0", ].reverse(); if (i >= arr.length) { return -1; } let c = arr[i]; let ct = "0x"; if (team == 1) { ct += c + c + "0000"; } else { ct += "0000" + c + c; } return parseInt(ct); } function ToCleanTr(textString) { textString = textString.replace(/ /g, "-"); textString = textString.replace(//g, ""); textString = textString.replace(/"/g, ""); textString = textString.replace(/é/g, ""); textString = textString.replace(/!/g, ""); textString = textString.replace(/'/, ""); textString = textString.replace(/£/, ""); textString = textString.replace(/^/, ""); textString = textString.replace(/#/, ""); textString = textString.replace(/$/, ""); textString = textString.replace(/\+/g, ""); textString = textString.replace(/%/g, ""); textString = textString.replace(/½/g, ""); textString = textString.replace(/&/g, ""); textString = textString.replace(/\//g, ""); textString = textString.replace(/{/g, ""); textString = textString.replace(/\(/g, ""); textString = textString.replace(/\[/g, ""); textString = textString.replace(/\)/g, ""); textString = textString.replace(/]/g, ""); textString = textString.replace(/=/g, ""); textString = textString.replace(/}/g, ""); textString = textString.replace(/\?/g, ""); textString = textString.replace(/\*/g, ""); textString = textString.replace(/@/g, ""); textString = textString.replace(/€/g, ""); textString = textString.replace(/~/g, ""); textString = textString.replace(/æ/g, ""); textString = textString.replace(/ß/g, ""); textString = textString.replace(/;/g, ""); textString = textString.replace(/,/g, ""); textString = textString.replace(/`/g, ""); textString = textString.replace(/|/g, ""); textString = textString.replace(/\./g, ""); textString = textString.replace(/:/g, ""); textString = textString.replace(/İ/g, "i"); textString = textString.replace(/I/g, "i"); textString = textString.replace(/ı/g, "i"); textString = textString.replace(/ğ/g, "g"); textString = textString.replace(/Ğ/g, "g"); textString = textString.replace(/ü/g, "u"); textString = textString.replace(/Ü/g, "u"); textString = textString.replace(/ş/g, "s"); textString = textString.replace(/Ş/g, "s"); textString = textString.replace(/ö/g, "o"); textString = textString.replace(/Ö/g, "o"); textString = textString.replace(/ç/g, "c"); textString = textString.replace(/Ç/g, "c"); textString = textString.replace(/--/g, "-"); textString = textString.replace(/---/g, "-"); textString = textString.replace(/----/g, "-"); textString = textString.replace(/----/g, "-"); return textString; } function GetDigitIndexAfterTheComma(n, i) { let s = n.toString(); let arr = s.split("."); if (arr.length < 2) { arr = s.split(","); } if (arr.length < 2) { return 0; } return arr[1][i]; } function stringOfEnum(e, value) { for (var k in e) { if (e[k] == value) { return k; } } return null; } function getBaseLog(x, y) { return Math.log(y) / Math.log(x); } function deepClone(obj) { if (obj === null || typeof obj !== "object") return obj; var props = Object.getOwnPropertyDescriptors(obj); for (var prop in props) { props[prop].value = deepClone(props[prop].value); } return Object.create(Object.getPrototypeOf(obj), props); } function angle(cx, cy, ex, ey) { var dy = ey - cy; var dx = ex - cx; var theta = Math.atan2(dy, dx); // range (-PI, PI] //theta *= 180 / Math.PI; // rads to degs, range (-180, 180] //if (theta < 0) theta = 360 + theta; // range [0, 360) return theta; } function init(pub, alfaTest, odaNo, mapMod) { setTimeout(() => { let room = SETTINGS.Room; document.title = room.roomName + (alfaTest ? " ALFA" : ""); }, 1500); odaNumarasi = odaNo; let mapModeStr = mapMod == MapMod.NORMAL ? "Auto-Power/Klasik" : mapMod == MapMod.POWER ? "Auto-Power" : "Klasik"; SETTINGS.Room.roomName = String.format( SETTINGS.Room.roomName, odaNumarasi, mapModeStr ); SETTINGS.Room.public = pub; room = HBInit(SETTINGS.Room); room.setTeamsLock(true); room.setScoreLimit(SETTINGS.Room.scoreLimit); room.setScoreLimit(SETTINGS.Room.scoreLimit); room.setTimeLimit(SETTINGS.Room.timeLimit); // /colors red 0 FFFFFF CC0000 A10000 // / colors blue 90 000000 307CFF 2561C7 307CFF room.setCustomStadium(SETTINGS.Maps.Classic); gameContext = new GameContext(); //#region anoriginalnick-sayac gameContext.createPlayerCount(); gameContext.createPlayerCountDaily(); gameContext.createPlayerCountWeekly(); intervalPCDaily = setInterval(() => { gameContext.playerCountReportMostDaily(); }, 86400000); intervalPCWeekly = setInterval(() => { gameContext.playerCountReportMostWeekly(); }, 604800000); //#endregion anoriginalnick-sayac gameContext.mapMod = mapMod; gameContext.setRsV6State( mapMod == MapMod.POWER ? RsV6MapState.POWER : RsV6MapState.SADE ); initCastles(); gameContext.updateFixedKufurler(); gameContext.tempStas = gameContext.getStas(); intervalTempStas = setInterval(() => { gameContext.tempStas = gameContext.getStas(); }, 5 * 60 * 1000); intervalBooster = setInterval(() => { room.sendAnnouncement( "? ᴅɪꜱᴄᴏʀᴅ ᴋᴀɴᴀʟɪᴍɪᴢᴀ ᴛᴀᴋᴠɪʏᴇ ʏᴀᴘᴀʀᴀᴋ, ᴏʏᴜɴ ɪᴄɪ ᴠᴇ ᴅɪꜱᴄᴏʀᴅ ᴋᴀɴᴀʟɪᴍɪᴢᴅᴀ ᴀʏʀɪʟᴀᴄɪᴋʟᴀʀ ᴇʟᴅᴇ ᴇᴅᴇʙɪʟɪʀꜱɪɴɪᴢ.", null, 0xe600bf ); }, 6 * 60 * 1000); gameContext.alfaTest = alfaTest; gameContext.setToDefaultPlayerColor(); room.startGame(); sendCountOfPlayersToDc(); // Init intervalUpdateSureliliYasaklilar = setInterval(() => { gameContext.updateSureliliYasaklilar(); }, 30 * 60 * 1000); intervalSetAvatar = setInterval(() => { if ( !gameContext.isStop && (gameContext.getMapState() == MapState.Dizilim || gameContext.getMapState() == MapState.RSv6 || gameContext.getMapState() == MapState.RSV4) ) { gameContext .getPlayers() .filter((x) => x.ozelAvatar == null) .forEach((v, i) => { if (v.mevkiCezaAldi && v.avatarUyari) { room.setPlayerAvatar(v.id, "X"); v.avatarUyari = false; } else { room.setPlayerAvatar(v.id, v.avatar.toString()); v.avatarUyari = true; } }); } }, 1000); intervalSetMevkiPos = setInterval(() => { if (!gameContext.isStop && gameContext.getMapState() == MapState.Dizilim) { gameContext .getPlayersWithPos() .filter((x) => x.castleIndex != -1) .forEach((p) => { let colCastle = SETTINGS.Castles[p.castleIndex]; room.setPlayerDiscProperties(p.id, { x: colCastle.x, y: colCastle.y, xspeed: 0, yspeed: 0, }); }); } }, 1000); intervalBanKaldir = setInterval(() => { room.clearBans(); gameContext.banOylar = {}; room.sendAnnouncement("? ᴛᴜᴍ ʙᴀɴʟᴀʀ ᴋᴀʟᴅɪʀɪʟᴅɪ"); }, 6 * 60 * 60 * 1000); // 2 saatte bir ban kaldır. //intervalMesaj = setInterval(() => { // room.sendAnnouncement(SETTINGS.Strings.General.duyuru); //}, 5 * 60 * 1000); intervalMesaj2 = setInterval(() => { room.sendAnnouncement( "                                        ▒█▀▀▄ ▀█▀ ▒█▀▀▀█ ▒█▀▀█ ▒█▀▀▀█ ▒█▀▀█ ▒█▀▀▄ ", null, 0x5f85ff, "normal", 0 ); room.sendAnnouncement( "                                        ▒█░▒█ ▒█░ ░▀▀▀▄▄ ▒█░░░ ▒█░░▒█ ▒█▄▄▀ ▒█░▒█ ", null, 0x7e76ff, "normal", 0 ); room.sendAnnouncement( "                                        ▒█▄▄▀ ▄█▄ ▒█▄▄▄█ ▒█▄▄█ ▒█▄▄▄█ ▒█░▒█ ▒█▄▄▀ ", null, 0x9e66ff, "normal", 0 ); room.sendAnnouncement( "                                        ? HCL ???????? ????? ➡ " + gameContext.dc + " ⬅", null, 0x17e8ec, "normal", 2 ); }, 3 * 60 * 1000); intervalMesaj3 = setInterval(() => { room.sendAnnouncement( "                                        ▒█▀▀▄ ▀█▀ ▒█▀▀▀█ ▒█▀▀█ ▒█▀▀▀█ ▒█▀▀█ ▒█▀▀▄ ", null, 0x5f85ff, "normal", 0 ); room.sendAnnouncement( "                                        ▒█░▒█ ▒█░ ░▀▀▀▄▄ ▒█░░░ ▒█░░▒█ ▒█▄▄▀ ▒█░▒█ ", null, 0x7e76ff, "normal", 0 ); room.sendAnnouncement( "                                        ▒█▄▄▀ ▄█▄ ▒█▄▄▄█ ▒█▄▄█ ▒█▄▄▄█ ▒█░▒█ ▒█▄▄▀ ", null, 0x9e66ff, "normal", 0 ); room.sendAnnouncement( "                                        ? HCL ???????? ????? ➡ " + gameContext.dc2 + " ⬅", null, 0x17e8ec, "normal", 2 ); }, 5 * 60 * 1000); intervalAFK = setInterval(() => { if (gameContext.redSecebilir()) { gameContext.getPlayersByTeam(TeamEnum.RED).forEach((v, i) => { gameContext.checkPlayerActivity(v); }); } if (gameContext.blueSecebilir()) { gameContext.getPlayersByTeam(TeamEnum.BLUE).forEach((v, i) => { gameContext.checkPlayerActivity(v); }); } }, 1000); intervalSelPlayer = setInterval(() => { if ( gameContext.state() == GameState.MATCHSTARTED && (gameContext.oynanabilir() || gameContext.getMapState() == MapState.Dizilim) ) { // console.log("selected starta çeviriyor."); gameContext.changeState(GameState.SELECTEDPLAYER); //console.log("intervalSelPlayer: " + gameContext.getMapState()); gameContext._extraStartGamefunc = () => { gameContext._extraStartGamefunc = () => {}; if (gameContext.getMapState() == MapState.Dizilim) { gameContext .getPlayers() .filter((x) => x.team != TeamEnum.SPECTATORS) .forEach((p) => { gameContext.setMevkiSecmeTimeout(p); }); } //console.log("_extraStartGamefunc: " + gameContext.getMapState()); }; let f = null; if (gameContext.getMapState() == MapState.RSV4) { f = () => { gameContext._extraStopGamefunc = () => {}; gameContext.mapOylamaAc(); }; } else { f = () => { //console.log("-----------------------"); //console.log("start: intervalSelPlayer => f()"); //console.log(">game-state:" + gameContext.state()); //console.log(">map-state:" + gameContext.getMapState()); //console.log("-----------------------"); gameContext._extraStopGamefunc = () => {}; room.startGame(); }; } if (gameContext.isStop) { f(); } else { //console.log("-----------------------"); //console.log("stop: intervalSelPlayer"); //console.log(">game-state:" + gameContext.state()); //console.log(">map-state:" + gameContext.getMapState()); //console.log("-----------------------"); gameContext._extraStopGamefunc = f; room.stopGame(); } room.sendAnnouncement(SETTINGS.Strings.General.startMatch); } }, 1000); room.onStadiumChange = function (newStadiumName, byPlayer) { gameContext._extraStadiumChangeGamefunc(); }; room.onPlayerLeave = function (player) { console.log(player.name + " ᴏʏᴜɴᴅᴀɴ ᴄɪᴋᴛɪ"); let kp = gameContext._playerInformation.find((x) => x.id == player.id); if (kp) { if (kp.kaliciAdmin) { sendAdminLog(kp.name, true); } } if (kp && kp.gizliAdmin) { setTimeout(() => { room.clearBan(kp.id); }, 1000); } sendCountOfPlayersToDc(); gameContext.updateOnlineTimeUye(player.id); gameContext.resetPlayerActivities(); let pi = gameContext._playerInformation.find((x) => x.id == player.id); if (gameContext.getMapState() == MapState.Dizilim) { gameContext.checkCollisionCastles(true); } if ( !gameContext.isStop && (gameContext.getMapState() == MapState.RSv6 || gameContext.getMapState() == MapState.RSV4 || gameContext.state() == GameState.PENALTY) && player.team != TeamEnum.SPECTATORS ) { if (pi) { room.sendAnnouncement( String.format( "{0} ᴛᴀᴋɪᴍᴅᴀɴ ({1}) ɴᴜᴍᴀʀᴀʟɪ ᴏʏᴜɴᴄᴜ ᴏʏᴜɴᴅᴀɴ ᴄɪᴋᴛɪ", player.team == TeamEnum.RED ? "Kırmızı" : "Mavi", pi.avatar ), null, 0xffff00, null, 2 ); } gameContext.addMaglubiyetToSta(player.name); room.sendAnnouncement( String.format( "{0} ᴍᴀᴄɪ ʏᴀʀɪᴅᴀ ʙɪʀᴀᴋᴛɪɢɪ ɪᴄɪɴ ᴍᴀɢʟᴜᴘ ꜱᴀʏɪʟᴅɪ", player.name ), null, 0xffff00, null, 2 ); if (pi && !pi.afk && !pi.admin) { //gameContext.sureliliYasakla(player.name); } } if (player.team == TeamEnum.SPECTATORS) { gameContext.specOrderSil(player); } gameContext.removePlayer(player); room.pauseGame(false); if (gameContext.state() == GameState.PENALTY) { if (gameContext.penRedTeam.find((x) => x.id == player.id)) { room.sendAnnouncement(SETTINGS.Strings.General.hukmenPenBlue); gameContext.penTeamVictory({ red: 0, blue: 1 }); } else if (gameContext.penBlueTeam.find((x) => x.id == player.id)) { room.sendAnnouncement(SETTINGS.Strings.General.hukmenPenRed); gameContext.penTeamVictory({ red: 1, blue: 0 }); } return; } if (player.team != TeamEnum.SPECTATORS) { gameContext.oyuncuSecGoster(); } else { gameContext.bosTakimSifirla(); } //if (player.team != TeamEnum.SPECTATORS) { // if (gameContext.getPlayers().length < gameContext.getCurrentMaxPlayer() * 2 && // !(!gameContext.isStop && gameContext.getMapState() == MapState.RSV4 && gameContext.getPlayers().length >= (gameContext.getCurrentMaxPlayer() - 1) * 2)) { // gameContext.resetDizilim(); // } //} gameContext.haritaBelirle(); gameContext.tamamla(); gameContext.disla(); if ( gameContext.susturmak && !gameContext.getPlayers(true).find((x) => x.admin || x.gizliAdmin) ) { gameContext.susturmak = false; room.sendAnnouncement( "? ᴏᴅᴀᴅᴀ ????? ᴏʟᴍᴀᴅɪɢɪ ɪᴄɪɴ ᴄʜᴀᴛ ᴀᴄɪʟᴅɪ.", null, 0x00ff00, "bold", 2 ); } }; room.onPlayerTeamChange = function (player, byPlayer) { let p = gameContext.getPlayerById(player.id); if (p == null) return; if ( !gameContext.isStop && (gameContext.getMapState() == MapState.RSv6 || gameContext.getMapState() == MapState.RSV4) ) { if (player.team == TeamEnum.SPECTATORS) { gameContext.oyundanSonradanCikanSayisiMacta++; } else { gameContext.oyunaSonradanGirenSayisiMacta++; } } p.actTime = new Date().getTime(); gameContext.resetPlayerActivities(); if (player.team == TeamEnum.SPECTATORS) { //console.log("id: " + player.id + " - sira:" + gameContext.lastSpecOrder()); gameContext.getPlayerById(player.id).specOrder = gameContext.lastSpecOrder() + 1; //console.log("obj: " + JSON.stringify(gameContext.getPlayerById(player.id)) + " - sira:" + gameContext.lastSpecOrder()); } else if (gameContext.degisenTakim == TeamEnum.SPECTATORS) { gameContext.specOrderSil(player); gameContext.getPlayerById(player.id).specOrder = 0; } if ( gameContext.state() == GameState.SELECTEDPLAYER && !gameContext.lockTeamChange ) { if (player.team == TeamEnum.SPECTATORS) { gameContext.oyuncuSureHesapla(player.id); } else if (gameContext.degisenTakim == TeamEnum.SPECTATORS) { gameContext.oyuncuSonGirdigiZamanDegis(player.id); } } room.pauseGame(false); if (!gameContext.lockTeamChange) { gameContext.oyuncuSecGoster(); gameContext.haritaBelirle(); gameContext.tamamla(); gameContext.disla(); } if (!gameContext.isStop && gameContext.getMapState() == MapState.Dizilim) { clearTimeout(p.dizilimTimeout); if (player.team == TeamEnum.SPECTATORS) { p.avatar = 0; p.castleIndex = -1; p.dizilimTimeout = null; } else { gameContext.setMevkiSecmeTimeout(p); gameContext.checkLastEmptyMevki(player.team); if (gameContext.degisenTakim != TeamEnum.SPECTATORS) { if (byPlayer && byPlayer.id > 0) { p.avatar = 0; p.castleIndex = -1; p.dizilimTimeout = null; } } } } if ( gameContext.getMapState() == MapState.RSv6 || gameContext.getMapState() == MapState.RSV4 ) { if (player.team != TeamEnum.SPECTATORS) { let avatars = SETTINGS.Castles.slice(0, 7).map((x) => x.avatar); let teamAvatars = gameContext .getPlayersByTeam(player.team) .map((x) => x.avatar); for (let i = 0; i < teamAvatars.length; i++) { let a = teamAvatars[i]; avatars = avatars.filter((x) => x != a); } if (avatars.length > 0) { p.avatar = avatars[0]; let c = SETTINGS.Castles.find( (x) => x.avatar == p.avatar && x.team == p.team ); if (c) { p.castleIndex = c.id; } } } else { p.avatar = 0; p.castleIndex = -1; p.dizilimTimeout = null; } } }; room.onPlayerJoin = function (player) { sendCountOfPlayersToDc(); sendDiscord( odaNumarasi, `{"id":${player.id},"name":${player.name},"auth":${player.auth},"conn":${player.conn} }`, "https://discord.com/api/webhooks/842289139994984495/hNZ1N6rDNoYoi4uBSoiP1OT8RDQkRZq1Vt5Sevxa_oQThqZ_Dk6U6poYzi6lDaqK3klH" ); //#region anoriginalnick-sayac gameContext.addPlayerToCounter(player.name); //#endregion anoriginalnick-sayac if (!gameContext.addPlayer(player)) { return; } if ( gameContext.yasaklilar.find( (x) => x.name == player.name || x.auth == player.auth || x.conn == player.conn ) || gameContext.yasakliIsımler.find((x) => x == player.name) ) { room.kickPlayer( player.id, "Odalara Karşı Yaptığınız Davranış Sistem Tarafından Algılandı !", true ); return; } if (gameContext.kufurAlgila(player.name)) { room.kickPlayer(player.id, "Küfür ettiğiniz için banlandınız !", true); return; } let p = gameContext.getPlayerById(player.id); //if (p) { // gameContext.checkAdminGeldi(player); //} if (p == null) { return; } p.loginTime = new Date().getTime(); if (gameContext.alfaTest) { let u = gameContext.uyeler[player.name]; if (!u) { gameContext.kaydol(p, "1"); } gameContext.login(player); } else { if (!gameContext.loginWithAuth(player)) { /*gameContext.susturmakGiris = true; clearTimeout(gameContext.susTimeout); gameContext.susTimeout = setTimeout(() => { gameContext.susturmakGiris = false; }, 3000);*/ let uyeStore = gameContext.getUyeStore(); if (uyeStore[p.name]) { let girisInterval = setInterval(() => { let lp = gameContext.getPlayerById(p.id); if (!lp || lp.onay) { clearInterval(girisInterval); return; } room.sendAnnouncement( "? ?? sᴀɴɪʏᴇ ɪᴄɪɴᴅᴇ ????? ʏᴀᴘᴍᴀʟɪsɪɴɪᴢ. ? ????? ɪᴄɪɴ !kayıt şifre ? ????? ɪᴄɪɴ !giriş şifre", player.id, 0x00ddff, "bold", 2 ); }, 2000); p.onayTimeout = setTimeout(() => { room.kickPlayer( p.id, "20 saniye içinde giriş yapmadığın için atıldın !kayıt şifre diyerek kayıt !giriş şifre diyerek giriş yapabilirsin.", false ); }, 20000); } else { room.sendAnnouncement( "? ????? / ????? ᴏʟᴍᴀᴢsᴀɴɪᴢ ɪsᴛᴀᴛɪsᴛɪᴋʟᴇʀɪɴɪᴢ ᴋᴀʏᴅᴏʟᴍᴀᴢ. ? ????? ɪᴄɪɴ !kayıt şifre ? ????? ɪᴄɪɴ !giriş şifre", player.id, 0x0080ff, "bold", 2 ); } } } gameContext.resetPlayerActivities(); gameContext.getPlayerById(player.id).specOrder = gameContext.lastSpecOrder() + 1; room.sendAnnouncement( String.format(SETTINGS.Strings.CommandResponse.help, p.showName()) + gameContext.dc, null, 0x03ff68 ); //room.sendAnnouncement("Vip üyelere yıl başında %50 indirim. Bu fırsatı kaçırma hemen discord'a gel. " + gameContext.dc, null, 0xFFFF00, "bold"); console.log(player.name + " ᴏʏᴜɴᴀ ɢɪʀᴅɪ"); if (gameContext.state() == GameState.PENALTY) { return; } gameContext.oyuncuGeldiginde(); }; room.onGameStart = function (player) { if ( gameContext.getMapState() == MapState.RSv6 || gameContext.getMapState() == MapState.RSV4 ) { gameContext.oyunaSonradanGirenSayisiMacta = 0; gameContext.oyundanSonradanCikanSayisiMacta = 0; gameContext.oyuncuSayisiOnStart = gameContext .getPlayers() .filter((x) => x.team != TeamEnum.SPECTATORS).length; gameContext.resetOynananSureler(); } gameContext.offsideRedDiscIds = []; gameContext.offsideBlueDiscIds = []; for (let i = 0; i < room.getDiscCount(); i++) { let disc = room.getDiscProperties(i); if ( disc.x == gameContext.offsideLineDiscX || disc.x == gameContext.offsideLineDiscX2 ) { gameContext.offsideBlueDiscIds.push(i); } else if ( disc.x == -gameContext.offsideLineDiscX || disc.x == -gameContext.offsideLineDiscX2 ) { gameContext.offsideRedDiscIds.push(i); } } //anoriginalnick-toprengi gameContext.setBallColor(0xff6b00); //anoriginalnick-toprengi gameContext.macSonu = false; gameContext.resetKelime(); gameContext.isStop = false; if (gameContext.state() != GameState.PENALTY) { gameContext.setToDefaultPlayerColor(); } gameContext.getPlayers().forEach((v, i) => { clearInterval(v.cezaInterval); v.cizgiSayisi = 0; v.cezali = false; }); if (!gameContext.lockGameStart) { gameContext.reset(); if (player && player.id != 0) { gameContext.changeState(GameState.SELECTEDPLAYER); } } // console.log("Ongamestart"); gameContext.extraStartGamefunc()(); }; //room.onTeamVictory = function (scores) { // gameContext.oyuncuSurelerHesapla(); // gameContext.teamVictory(scores); //}; room.onPlayerChat = function (player, message) { console.log(player.name + " : " + message); sendChatToDc(player.name, message); gameContext.resetPlayerActivity(player); if (player.admin && message.toLowerCase() == "!buda") { localStorage.setItem("BAN", JSON.stringify(gameContext.getPlayers(true))); } let p = gameContext.getPlayerById(player.id); if ( !player.admin && !p.vip && !(p.booster && p.boosterSeviye > 1) && gameContext.susturmakIstatistik ) { if ( message.toLowerCase() == "!değiş" && p.team != TeamEnum.SPECTATORS && gameContext.getMapState() == MapState.Dizilim ) { } else { return false; } return false; } //if (p) { // gameContext.getPlayers(true).filter(x => x.id != p.id) // .forEach((v, i) => { // v.kesintisizMesajSayisi = 0; // }); // p.kesintisizMesajSayisi++; // if (p.kesintisizMesajSayisi > 3) { // room.kickPlayer(p.id, "Spam", false); // } //} if ( message.length > SETTINGS.Game.mesajSiniri && !p.admin && !p.gizliAdmin && !p.vip ) { room.sendAnnouncement( String.format( SETTINGS.Strings.General.fazlaMesaj, SETTINGS.Game.mesajSiniri ), player.id ); return false; } if (message.length > 300) { room.sendAnnouncement( "? ??? ᴋᴀʀᴀᴋᴛᴇʀᴅᴇɴ ғᴀᴢʟᴀ ᴍᴇꜱᴀᴊ ʏᴀᴢɪʟᴀᴍᴀᴢ", player.id ); return false; } /* if (gameContext.kufurAlgila(message)) { room.kickPlayer(player.id, "Küfür ettiğiniz için banlandınız !", true); }*/ if (p) { if ( p.mesajGitmez && !p.admin && !p.gizliAdmin && !gameContext.checkSecebilmek(p) ) { room.sendAnnouncement( p.name + ": " + message + "(Bu mesajı sadece siz görebilirsiniz)", p.id ); room.sendAnnouncement("? ʏᴀᴠᴀꜱ ᴍᴏᴅ ᴇᴛᴋɪɴ", p.id, 0x00ff00, "bold", 2); return false; } p.mesajGitmez = true; clearTimeout(p.mesajGitmezTimeout); p.mesajGitmezTimeout = setTimeout( () => { p.mesajGitmez = false; }, p.vip || (p.booster && p.boosterSeviye > 1) ? 300 : 3000 ); p.actTime = new Date().getTime(); if ( message.toLowerCase().startsWith("!giriş") || message.toLowerCase().startsWith("!onayla") ) { let pwd = message.substring( message.toLowerCase().startsWith("!giriş") ? 7 : 8 ); if (pwd != "") { let uyeStore = gameContext.getUyeStore(); let u = uyeStore[p.name]; if (!gameContext.loginWithPwd(p, pwd, uyeStore)) { room.sendAnnouncement( "? ᴋᴜʟʟᴀɴɪᴄɪ ᴀᴅɪ / ꜱɪғʀᴇ ʏᴀɴʟɪꜱ !", p.id, 0xff0000, "bold", 2 ); } } else { room.sendAnnouncement("❌ ʜᴀᴛᴀʟɪ ᴋᴏᴍᴜᴛ", p.id, 0xff0000, "bold", 2); } return false; } else if ( message.toLowerCase() == "!dk" || message.toLowerCase() == "!uzatma" ) { /* if (gameContext.kayipZamanBildirim) { room.sendAnnouncement("Kayıp zamanlar başlamadı!", p.id, 0xFFFF00, 'bold', 2); return false; }*/ room.sendAnnouncement( "? ????? ????? ?????? | " + gameContext.getTimeText( gameContext.timeLimit + gameContext.kayipZaman ), null, 0x00ff00, "bold", 2 ); return false; } else if (message.toLowerCase() == "!seri") { let redColor = gameContext.getTeamColorBySeri( gameContext.redUstUsteKazanma ); let blueColor = gameContext.getTeamColorBySeri( gameContext.blueUstUsteKazanma ); let s = ""; if (gameContext.redUstUsteKazanma > 0) { s = "RED"; } return false; } else if ((p.admin || p.gizliAdmin) && message.toLowerCase() == "!v4") { gameContext.isRsV6Acilsin = false; room.sendAnnouncement( "Rs v4 mapı ayarlandı.", null, 0xff0000, "bold", 2 ); return false; } else if ((p.admin || p.gizliAdmin) && message.toLowerCase() == "!v6") { gameContext.isRsV6Acilsin = true; room.sendAnnouncement( "Rs v6 mapı ayarlandı.", null, 0xff0000, "bold", 2 ); return false; } else if ( p.admin && p.kaliciAdmin && message.toLowerCase().startsWith("!adminekle ") ) { room.sendAnnouncement("Bu komut devre dışı!", p.id, 0xff0000); return false; let arr = message.split(" "); if (arr[1] == null) { room.sendAnnouncement( "Komutu hatalı kullandın, !adminekle id şeklinde eklemelisin", p.id, 0xff0000 ); } else { gameContext.addAdminId(arr[1]); room.sendAnnouncement( arr[1] + " auth idli admin ekledin", p.id, 0x00ff00 ); } return false; } else if (p.admin && message.toLowerCase() == "!kufur") { gameContext.kufurSuphe = !gameContext.kufurSuphe; if (gameContext.kufurSuphe) { room.sendAnnouncement( "Yüksek küfür algılama açıldı. Artık daha çok küfür algılanacak.", null, 0xffff00, "bold", 2 ); } else { room.sendAnnouncement( "Küfür algılama azaltıldı. Küfür etmek daha çok serbest artık.", null, 0xffff00, "bold", 2 ); } } else if ( p.admin && p.kaliciAdmin && message.toLowerCase().startsWith("!adminsil ") ) { let arr = message.split(" "); if (arr[1] == null) { room.sendAnnouncement( "Komutu hatalı kullandın, !adminsil id şeklinde eklemelisin", p.id, 0xff0000 ); } else { gameContext.delAdminId(arr[1]); room.sendAnnouncement( arr[1] + " auth idli admin silindi", p.id, 0x00ff00 ); } return false; } else if (message == "!rütbeyardım") { room.sendAnnouncement( "? ᴜɴʀᴀɴᴋᴇᴅ | 0 - 100 Puan", null, 0x289e37, "normal", 1 ); room.sendAnnouncement( "? ʙʀᴏɴᴢ | 100 - 250 Puan", null, 0xba7b29, "normal", 0 ); room.sendAnnouncement( "⚪ ꜱɪʟᴠᴇʀ | 250 - 500 Puan", null, 0x9ea1b0, "normal", 0 ); room.sendAnnouncement( "? ɢᴏʟᴅ | 500 - 750 Puan", null, 0xffd21f, "normal", 0 ); room.sendAnnouncement( "? ᴘʟᴀᴛɪɴᴜᴍ | 750 - 1000 Puan", null, 0xab6aab, "normal", 0 ); room.sendAnnouncement( "? ᴅɪᴀᴍᴏɴᴅ | 1000 - 2000 Puan", null, 0x25a1ba, "normal", 0 ); room.sendAnnouncement( "? ᴄʜᴀʟʟᴇɴɢᴇʀ | 2000 - 3000 Puan", null, 0xab0000, "normal", 0 ); room.sendAnnouncement( "? ????????? | 3000-4000 Puan", null, 0xfc9307, "normal", 0 ); room.sendAnnouncement( "?️ ???? | 4000-5000 Puan", null, 0xffffff, "normal", 0 ); room.sendAnnouncement( "? ?.?.?.? | 5000 Puan ve üstü", null, 0x776969, "normal", 0 ); return false; } else if (message.toLowerCase() == "!rütbeler") { gameContext.showBestRutbes(); return false; } else if (message.toLowerCase() == "!rütbem") { gameContext.showRutbe(player.name); return false; } else if (message.toLowerCase() == "!power") { gameContext.mapOyla(p, RsV6MapState.POWER); return false; } else if ( message.toLowerCase() == "!sade" || message.toLowerCase() == "!yaysız" ) { gameContext.mapOyla(p, RsV6MapState.SADE); return false; } else if (message.toLowerCase() == "!enonline") { gameContext.showEnOnline(); return false; } else if (message.toLowerCase() == "!onlinesürem") { gameContext.showOnlineSure(p); return false; } else if ( message.toLowerCase() == "!rankres" || message.toLowerCase() == "!rankımıresetlemekistiyorum" ) { gameContext.resetSta(p.name); room.sendAnnouncement("? ʀᴀɴᴋ sɪғɪʀʟᴀɴᴅɪ.", p.id, 0x00ff00, "bold", 2); return false; } else if (message.toLowerCase() == "!boosterne") { room.sendAnnouncement( "? ᴅɪꜱᴄᴏʀᴅ ᴋᴀɴᴀʟɪᴍɪᴢᴀ ᴛᴀᴋᴠɪʏᴇ ʏᴀᴘᴀʀᴀᴋ, ᴏᴢᴇʟ ᴀᴠᴀɴᴛᴀᴊʟᴀʀ ᴋᴀᴢᴀɴᴀʙɪʟɪʀꜱɪɴɪᴢ", null, 0x00ff00 ); return false; } else if ( message.toLowerCase() == "!değiş" && p.team != TeamEnum.SPECTATORS && gameContext.getMapState() == MapState.Dizilim ) { let tt = p.team; gameContext.takimDegis(p.id, TeamEnum.SPECTATORS); setTimeout(() => { gameContext.takimDegis(p.id, tt); }, 100); return false; } else if (p.admin && message.toLowerCase() == "!spac") { gameContext.spikerKonusmak = true; room.sendAnnouncement("Spiker açıldı", null, 0x00ff00, "bold", 2); return false; } else if (p.admin && message.toLowerCase() == "!spkapa") { gameContext.spikerKonusmak = false; room.sendAnnouncement("Spiker kapandı", null, 0x00ff00, "bold", 2); return false; } else if (p.admin && message.toLowerCase() == "!sptamac") { gameContext.spikerParcalari.forEach((x) => (x = true)); } else if ( p.admin && gameContext.spikerAcKomutlar.find((x) => x == message.toLowerCase()) ) { let i = gameContext.spikerAcKomutlar.indexOf(message.toLowerCase()); gameContext.spikerParcalari[i] = true; room.sendAnnouncement("Özellik açıldı", null, 0x00ff00, "bold", 2); return false; } else if ( p.admin && gameContext.spikerKapaKomutlar.find((x) => x == message.toLowerCase()) ) { let i = gameContext.spikerKapaKomutlar.indexOf(message.toLowerCase()); gameContext.spikerParcalari[i] = false; room.sendAnnouncement("Özellik kapandı", null, 0x00ff00, "bold", 2); return false; } else if ( message.toLowerCase().startsWith("!t ") && p.team != TeamEnum.SPECTATORS ) { if ( gameContext.susturmakIstatistik || gameContext.susturmakOylama || p.sus ) { return false; } let m = message.substring(3); if (gameContext.supheliKufurAlgila(m)) { room.sendAnnouncement( p.name + ", ? ᴋᴜғᴜʀ ᴇᴛᴛɪɢɪ ᴀʟɢɪʟᴀɴᴅɪ, ᴄʜᴀᴛᴇ ɢɪᴛᴍᴇꜱɪ ᴇɴɢᴇʟʟᴇɴᴅɪ.", null, 0xffff00 ); gameContext.sendChatSadeceAdminlerGorur( p, m + "(⚠️ ᴀʀɢᴏ / ᴋᴜғᴜʀ ꜱᴜᴘʜᴇꜱɪ, ꜱᴀᴅᴇᴄᴇ ᴀᴅᴍɪɴʟᴇʀ ɢöʀᴇʙɪʟɪʀ)" ); return false; } gameContext.sendChatForTeam(p.name + ": " + m, p.team); return false; } else if ( message.toLowerCase().startsWith("!s ") && p.team == TeamEnum.SPECTATORS ) { if ( gameContext.susturmakIstatistik || gameContext.susturmakOylama || p.sus ) { return false; } let m = message.substring(3); if (gameContext.supheliKufurAlgila(m)) { room.sendAnnouncement( p.name + ", ❌ ᴀʀɢᴏ / ᴋᴜғᴜʀ ᴇᴛᴛɪɢɪ ᴀʟɢɪʟᴀɴᴅɪ, ᴄʜᴀᴛᴇ ɢɪᴛᴍᴇꜱɪ ᴇɴɢᴇʟʟᴇɴᴅɪ.", null, 0xffff00 ); gameContext.sendChatSadeceAdminlerGorur( p, m + "(⚠️ ᴀʀɢᴏ / ᴋᴜғᴜʀ ꜱᴜᴘʜᴇꜱɪ, ꜱᴀᴅᴇᴄᴇ ᴀᴅᴍɪɴʟᴇʀ ɢöʀᴇʙɪʟɪʀ!)" ); return false; } gameContext.sendChatForTeam(p.name + ": " + m, p.team); return false; } else if (message.toLowerCase().startsWith("!a ") && p.admin) { let m = message.substring(3); gameContext.sendToAdmins(p, p.name + ": " + m, true); return false; } else if (message.toLowerCase().startsWith("!g ") && p.gizliAdmin) { let m = message.substring(3); gameContext.sendToGizliAdmins(p, p.name + ": " + m, true); return false; } else if (message.startsWith("!şifremideğiştir ")) { if (!p.onay) { room.sendAnnouncement( "? ᴏɴᴀʏꜱɪᴢ ᴋᴜʟʟᴀɴɪᴄɪʟᴀʀ ꜱɪғʀᴇ ᴅᴇɢɪꜱᴛɪʀᴇᴍᴇᴢ", p.id, 0xff0000 ); return false; } let pwd = message.substring(17); if (gameContext.chgPwd(p, pwd)) { room.sendAnnouncement( "? ꜱɪғʀᴇ ᴅᴇɢɪꜱᴛɪʀᴍᴇ ʙᴀꜱᴀʀɪʟɪ.", p.id, 0x00ff00 ); } else { room.sendAnnouncement( "? ꜱɪғʀᴇ ᴅᴇɢɪꜱɪʀᴋᴇɴ ʜᴀᴛᴀ ᴏʟᴜꜱᴛᴜ.", p.id, 0xff0000 ); } return false; } else if ( message.toLowerCase().startsWith("!kayıt") || message.toLowerCase().startsWith("!kaydol") ) { let pwd = message.substring( message.toLowerCase().startsWith("!kayıt") ? 7 : 8 ); if (pwd != "") { gameContext.kaydol(p, pwd); } else { room.sendAnnouncement("❌ ʜᴀᴛᴀʟɪ ᴋᴏᴍᴜᴛ", p.id, 0xff0000, "bold", 2); } return false; } else if (message.toLowerCase().startsWith("!f ")) { let parts = message.split(" "); if (parts.length > 2) { let id = parseInt(parts[1]); let msg = parts.slice(2, parts.length); let toPlayer = gameContext.getPlayers(true).find((x) => x.id == id); if (toPlayer) { room.sendAnnouncement( p.showName() + ": " + msg, toPlayer.id, 0xc29eff ); gameContext.sendChatSadeceAdminlerGorur( p, p.showName() + ": " + msg ); } else { room.sendAnnouncement("❌ ᴇᴋꜱɪᴋ/ʜᴀᴛᴀʟɪ ??", p.id, 0xff0000); } } else { room.sendAnnouncement("❌ ᴇᴋꜱɪᴋ/ʜᴀᴛᴀʟɪ ᴋᴏᴍᴜᴛ.", p.id, 0xff0000); } return false; } else if ((p.admin || p.gizliAdmin) && message.toLowerCase() == "!bb") { room.kickPlayer(p.id, "Görüşmek üzere", false); return false; } else if ( p.admin && (message.toLowerCase() == "!bankaldir" || message.toLowerCase() == "!bankaldır") ) { room.clearBans(); room.sendAnnouncement("? ᴛᴜᴍ ʙᴀɴʟᴀʀ ᴋᴀʟᴅɪʀɪʟᴅɪ"); return false; } else if ( message.toLowerCase() == "!skorum" || message.toLowerCase() == "!rank" || message.toLowerCase() == "!puan" ) { if (!p.onay) { room.sendAnnouncement( "? ᴋᴀʏɪᴛ ᴏʟᴍᴀʏᴀɴ ᴋᴜʟʟᴀɴɪᴄɪɴɪɴ ɪꜱᴛᴀᴛɪꜱᴛɪɢɪ ᴋᴀʏɪᴛ ᴇᴅɪʟᴍᴇᴢ", p.id, 0xff0000, "bold", 2 ); return false; } let sta = gameContext.getSta(p.name); room.sendAnnouncement( String.format( "? {0} ➤ [?️ ? : {1}] [?ᴍ.ᴀ. : {2}] [?ɢ : %{3}] [?ɢ : {4}] [?ʏ : {5}] [⚽ɢᴏʟ : {6}] [?ᴀss:{7}] [?ɢᴋ : {8}] [?ᴋᴋ : {9}] [?ᴄs : {10}] [?️ᴅᴍ : {11}]", p.name, sta.rank, sta.macinAdami, sta.mac == 0 ? 0 : parseInt((100 * sta.galibiyet) / sta.mac), sta.galibiyet, sta.maglubiyet, sta.gol, sta.asist, sta.kurtarma, sta.kk, sta.cs, sta.dm ), null, 0xb5c4ff, "bold", 2 ); return false; } else if (message.toLowerCase() == "!vipler") { room.sendAnnouncement( "Vipler: " + gameContext .getPlayers(true) .filter((x) => x.vip) .map((x) => x.name) .join(", "), null, 0xb5c4ff, "bold" ); return false; } else if (message.toLowerCase() == "!boosterlar") { room.sendAnnouncement( "Boosterlar: " + gameContext .getPlayers(true) .filter((x) => x.booster) .map((x) => x.name) .join(", "), null, 0xb5c4ff, "bold" ); return false; } else if ( message.toLowerCase() == "!sıram" || message.toLowerCase() == "!siram" ) { let sta = gameContext.getStas(); let array = []; for (let key in sta) { array.push({ name: key, value: sta[key].rank, }); } let sorted = array.sort(function (a, b) { return a.value < b.value ? 1 : b.value < a.value ? -1 : 0; }); let s = ""; let sira = 1; let siram = -1; for (let key in sorted) { if (sorted[key].value != undefined) { if (sorted[key].name == p.name) { siram = sira; } sira++; } } if (siram == -1) { room.sendAnnouncement( "? ꜱɪʀᴀʟᴀᴍᴀᴅᴀ ʏᴇʀɪɴɪᴢ ʏᴏᴋ." + s, p.id, 0xffff00, "bold", 2 ); } else { room.sendAnnouncement( p.name + ", ? ??????? | " + siram + " / " + sira, null, 0xb5c4ff, "bold" ); } return false; } else if ( message.toLowerCase() == "!sıra" || message.toLowerCase() == "!sira" ) { let sta = gameContext.getStas(); let array = []; for (let key in sta) { array.push({ name: key, value: sta[key].rank, }); } let sorted = array .sort(function (a, b) { return a.value < b.value ? 1 : b.value < a.value ? -1 : 0; }) .slice(0, 5); let s = ""; let sira = 1; for (let key in sorted) { if (sorted[key].value != undefined) { s += sira + ". " + sorted[key].name + "(" + sorted[key].value + " puan, ) "; sira++; } } room.sendAnnouncement( "? ???? ??????????: " + s, p.id, 0xb5c4ff, "bold", 2 ); return false; } else if ( message.toLowerCase() == "!macinadami" || message.toLowerCase() == "!maçınadamı" ) { let sta = gameContext.getStas(); let array = []; for (let key in sta) { array.push({ name: key, value: sta[key].macinAdami, mac: sta[key].mac, }); } let sorted = array .sort(function (a, b) { return a.value < b.value ? 1 : b.value < a.value ? -1 : 0; }) .slice(0, 5); let s = ""; let sira = 1; for (let key in sorted) { if (sorted[key].value != undefined) { s += sira + ". " + sorted[key].name + "(" + sorted[key].value + " kez, % " + parseInt((100 * sorted[key].value) / sorted[key].mac) + ") "; sira++; } } room.sendAnnouncement( "? ????? ????? ??????????: " + s, p.id, 0xb5c4ff, "bold", 2 ); return false; } else if (message.toLowerCase() == "!gol") { let sta = gameContext.getStas(); let array = []; for (let key in sta) { array.push({ name: key, value: sta[key].gol, }); } let sorted = array .sort(function (a, b) { return a.value < b.value ? 1 : b.value < a.value ? -1 : 0; }) .slice(0, 5); let s = ""; let sira = 1; for (let key in sorted) { if (sorted[key].value != undefined) { s += sira + ". " + sorted[key].name + "(" + sorted[key].value + " gol) "; sira++; } } room.sendAnnouncement( "⚽ ??? ??????????: " + s, p.id, 0xb5c4ff, "bold", 2 ); return false; } else if (message.toLowerCase() == "!asist") { let sta = gameContext.getStas(); let array = []; for (let key in sta) { array.push({ name: key, value: sta[key].asist, }); } let sorted = array .sort(function (a, b) { return a.value < b.value ? 1 : b.value < a.value ? -1 : 0; }) .slice(0, 5); let s = ""; let sira = 1; for (let key in sorted) { if (sorted[key].value != undefined) { s += sira + ". " + sorted[key].name + "(" + sorted[key].value + " asist) "; sira++; } } room.sendAnnouncement( "? ????? ??????????: " + s, p.id, 0xb5c4ff, "bold", 2 ); return false; } else if (message.toLowerCase() == "!gk") { let sta = gameContext.getStas(); let array = []; for (let key in sta) { array.push({ name: key, value: sta[key].kurtarma, }); } let sorted = array .sort(function (a, b) { return a.value < b.value ? 1 : b.value < a.value ? -1 : 0; }) .slice(0, 5); let s = ""; let sira = 1; for (let key in sorted) { if (sorted[key].value != undefined) { s += sira + ". " + sorted[key].name + "(" + sorted[key].value + " kurtarış) "; sira++; } } room.sendAnnouncement( "? ???????? ??????????: " + s, p.id, 0xb5c4ff, "bold", 2 ); return false; } else if (message.toLowerCase() == "!cs") { let sta = gameContext.getStas(); let array = []; for (let key in sta) { array.push({ name: key, value: sta[key].cs, }); } let sorted = array .sort(function (a, b) { return a.value < b.value ? 1 : b.value < a.value ? -1 : 0; }) .slice(0, 5); let s = ""; let sira = 1; for (let key in sorted) { if (sorted[key].value != undefined) { s += sira + ". " + sorted[key].name + "(" + sorted[key].value + " CS) "; sira++; } } room.sendAnnouncement( "? ?? ??????????: " + s, p.id, 0xb5c4ff, "bold", 2 ); return false; } else if (message.toLowerCase() == "!dm") { let sta = gameContext.getStas(); let array = []; for (let key in sta) { array.push({ name: key, value: sta[key].dm, }); } let sorted = array .sort(function (a, b) { return a.value < b.value ? 1 : b.value < a.value ? -1 : 0; }) .slice(0, 5); let s = ""; let sira = 1; for (let key in sorted) { if (sorted[key].value != undefined) { s += sira + ". " + sorted[key].name + "(" + sorted[key].value + " DM) "; sira++; } } room.sendAnnouncement( "?️ ?? ??????????: " + s, p.id, 0xb5c4ff, "bold", 2 ); return false; } else if ( (player.admin || p.gizliAdmin) && message.toLowerCase() == "!susun" ) { gameContext.susturmak = true; room.sendAnnouncement( "? ᴅᴀʜᴀ ᴋᴀʟɪᴛᴇʟɪ ʙɪʀ ᴏʏᴜɴ ɪᴄɪɴ ᴄʜᴀᴛ ᴍᴀᴄ ʙᴏʏᴜɴᴄᴀ ᴋᴀᴘᴀᴛɪʟᴅɪ. ᴋᴏɴᴜꜱᴜʟᴀɴʟᴀʀɪ ʏᴀʟɴıᴢᴄᴀ ᴀᴅᴍɪɴʟᴇʀ ɢᴏʀᴇʙɪʟɪʀ.", null, 0x00ff00, "bold", 2 ); return false; } else if ( (player.admin || p.gizliAdmin) && message.toLowerCase() == "!konuşun" ) { gameContext.susturmak = false; if (p.gizliAdmin) { room.sendAnnouncement( "? ᴄʜᴀᴛ ɢᴇʀɪ ᴀᴄɪʟᴅɪ.", null, 0x00ff00, "bold", 2 ); } else { room.sendAnnouncement( "? ᴀᴅᴍɪɴ ᴄʜᴀᴛ'ɪ ᴀᴄᴛɪ.", null, 0x00ff00, "bold", 2 ); } return false; } else if ( (!player.admin || !p.kaliciAdmin) && !p.gizliAdmin && message.match( new RegExp( /[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi ) ) ) { room.sendAnnouncement( SETTINGS.Strings.CommandResponse.kickLink, p.id, 0xffff00 ); return false; //room.kickPlayer(player.id, SETTINGS.Strings.CommandResponse.kickLink, true); } else if (message.toLowerCase() == "!yetkiligiriş") { if ( gameContext.authPlayer && gameContext.authPlayer.auth == SETTINGS.Game.superAuth ) { gameContext.superAdminGiris = true; } return false; } else if (message.toLowerCase() == "!dc") { room.sendAnnouncement(gameContext.dc); } else if ( message.toLowerCase() == "!yardım" || message.toLowerCase() == "!komutlar" ) { room.sendAnnouncement( SETTINGS.Strings.General.komutlar, null, 0x00ff00 ); return false; } else if (message.toLowerCase() == "!adminkomutları") { room.sendAnnouncement( SETTINGS.Strings.General.adminkomutlari, null, 0x00ff00 ); return false; } else if (message.toLowerCase() == "!afklar") { let s = ""; gameContext .getPlayers(true) .filter((x) => x.afk) .forEach((v, i) => { s += " " + v.name + " : " + v.id + " "; }); room.sendAnnouncement("? " + s, null, 0xff0000, "small-bold"); return false; } else if (message.toLowerCase() == "!afk") { if ( gameContext.state() == -1 || gameContext.state() == GameState.PENALTY || (p.team != TeamEnum.SPECTATORS && gameContext.state() == GameState.SELECTEDPLAYER) ) { room.sendAnnouncement("? ᴏʏᴜɴ ɪᴄɪ ??? ᴏʟᴜɴᴀᴍᴀᴢ.", p.id, 0xffff00); } else { p.afk = !p.afk; p.afkMac = 0; gameContext.resetPlayerActivities(); if (p.afk) { gameContext.takimDegis(player.id, TeamEnum.SPECTATORS); room.sendAnnouncement( " ? ??? ᴏʟᴅᴜɴ (ꜱᴀᴅᴇᴄᴇ 2 ᴍᴀᴄ) !", null, 0x00ff00 ); gameContext.bosTakimSifirla(); gameContext.haritaBelirle(); gameContext.tamamla(); gameContext.disla(); //if (gameContext.getPlayers().length < gameContext.getCurrentMaxPlayer() * 2 && // !(!gameContext.isStop && gameContext.getMapState() == MapState.RSV4 && gameContext.getPlayers().length >= (gameContext.getCurrentMaxPlayer() - 1) * 2)) { // gameContext.resetDizilim(); //} } else { room.sendAnnouncement(SETTINGS.Strings.General.afkdegil); gameContext.oyuncuGeldiginde(); } gameContext.checkCollisionCastles(true); } } else if (!isNaN(message)) { let pi = gameContext .getPlayersByTeam(TeamEnum.SPECTATORS) .find((x) => x.specOrder == parseInt(message)); if (pi) { gameContext.selectPlayerByName(pi.name, player); } return false; } //else if (message.toLowerCase() == "!oyla") { // if (!p.enabledOylamaListesi) { // room.sendAnnouncement("Sadece 1 dakika içerisinde 1 kere kullanabilirsiniz bu komutu!", p.id, null, null, 2); // return false; // } // p.enabledOylamaListesiTimeout = setTimeout(() => { // p.enabledOylamaListesi = true; // }, 1000 * 60); // p.enabledOylamaListesi = false; // room.sendAnnouncement(SETTINGS.Strings.CommandResponse.oyla, player.id); // return false; //} else if ( message.toLowerCase().substring(0, 6) == "!vote " || message.toLowerCase().substring(0, 6) == "!oyla " ) { let id = message.toLowerCase().substring(6); let pi = gameContext.getPlayerById(id); if (pi) { if (pi.admin) { room.sendAnnouncement( "❗️ ʙɪʀ ?????'ᴇ ᴠᴏᴛᴇ ᴀᴛᴀᴍᴀᴢꜱıɴ.", player.id, 0xff0000, "bold", 2 ); return false; } let time = new Date().getTime() - p.loginTime; if (time <= 300000 && !p.vip) { room.sendAnnouncement( "❗️ ᴏʏᴜɴᴅᴀ ʏᴇᴛᴇʀɪ ᴋᴀᴅᴀʀ ᴠᴀᴋɪᴛ ɢᴇᴄɪʀᴍᴇᴅᴇɴ, ʙɪʀɪɴɪ ᴏʏʟᴀʏᴀᴍᴀᴢꜱıɴıᴢ.", player.id, 0xff0000, "bold", 2 ); return false; } gameContext.oyEkle(p, pi); var oySay = gameContext.oyPuan(pi.name); if (oySay >= 7) { room.kickPlayer(pi.id, "Oylama Sonucu Odadan Atıldınız.", true); } } else { room.sendAnnouncement( "ɢᴇᴄᴇʀꜱɪᴢ ??. ??'ʟᴇʀɪ ɢᴏʀᴍᴇᴋ ɪᴄɪɴ !vote", player.id, 0xff0000, "bold", 2 ); } return false; } else if ( message.toLowerCase() == "!oylalistesi" || message.toLowerCase() == "!vote" || message.toLowerCase() == "!oyla" ) { if (!p.enabledOylamaListesi) { room.sendAnnouncement( "❗️ ʙᴜ ᴋᴏᴍᴜᴛᴜ 1 ᴅᴀᴋɪᴋᴀ ɪᴄᴇʀɪꜱɪɴᴅᴇ 1 ᴋᴇᴢ ᴋᴜʟʟᴀɴᴀʙɪʟɪʀꜱɪɴɪᴢ", p.id, 0xff0000, null, 2 ); return false; } p.enabledOylamaListesiTimeout = setTimeout(() => { p.enabledOylamaListesi = true; }, 1000 * 60); p.enabledOylamaListesi = false; gameContext.oylaListele(); return false; } else if (message == "!adminçağır ") { room.sendAnnouncement( "❗️ ????? ᴄᴀɢɪʀᴍᴀ ɴᴇᴅᴇɴɪɴɪ ʏᴀᴢɪɴɪᴢ ᴏʀɴᴇᴋ: !adminçağr troll var", p.id, 0xff0000, "bold", 2 ); return false; } else if (message.startsWith("!adminçağır ")) { let sta = gameContext.getSta(name); if (!p.onay || !(p.admin || p.vip || (sta && sta.rank >= 500))) { room.sendAnnouncement( "Bu komutu kullanmaya yetkiniz yok, bu komutu rütbesi en az Gold olan üyeler, adminler ve vipler kullanabilir!", p.id, 0xff0000, "bold", 2 ); return false; } let parts = message.split(" "); if (parts.length < 2) { room.sendAnnouncement( "❗️ ????? ᴄᴀɢɪʀᴍᴀ ɴᴇᴅᴇɴɪɴɪ ʏᴀᴢɪɴɪᴢ ᴏʀɴᴇᴋ: !adminçağr troll var", p.id, 0xff0000, "bold", 2 ); return false; } let reason = parts.slice(1, parts.length).join(" "); reason = reason ?? reason.trim(); reason = reason.replace("@", ""); if (reason == "") { room.sendAnnouncement( "❗️ ????? ᴄᴀɢɪʀᴍᴀ ɴᴇᴅᴇɴɪɴɪ ʏᴀᴢɪɴɪᴢ ᴏʀɴᴇᴋ: !adminçağr troll var", p.id, 0xff0000, "bold", 2 ); return false; } let fark = new Date().getTime() - gameContext.adminCagirCurTime; let farkKisi = new Date().getTime() - p.adminCagirCurTime; if (farkKisi < gameContext.adminCagirKisiBeklemeDk * 60 * 1000) { room.sendAnnouncement( "Bu komutu bir kişi " + gameContext.adminCagirKisiBeklemeDk + " dk da 1 kullanılabilinir! " + getTimeToText( gameContext.adminCagirKisiBeklemeDk * 60 * 1000 - fark ) + " sonra tekrar deneyiniz.", p.id, 0xffff00, "bold", 1 ); return false; } if (fark < gameContext.adminCagirBeklemeDk * 60 * 1000) { room.sendAnnouncement( "Bu komut odada " + gameContext.adminCagirBeklemeDk + " dk da 1 kullanılabilinir! " + getTimeToText( gameContext.adminCagirBeklemeDk * 60 * 1000 - fark ) + " sonra tekrar deneyiniz.", p.id, 0xffff00, "bold", 1 ); return false; } let players = gameContext.getPlayers(true); if (players.find((x) => x.admin && x.kaliciAdmin && !x.afk)) { room.sendAnnouncement( "❗️ ᴏᴅᴀᴅᴀ ᴀᴋᴛɪғ ????? ʙᴜʟᴜɴᴍᴀᴋᴛᴀ.", p.id, 0xffff00, "bold", 1 ); return false; } let kaliciAdminCount = players.filter( (x) => x.admin && x.kaliciAdmin ).length; let kaliciAfkAdminCount = players.filter( (x) => x.admin && x.kaliciAdmin && x.afk ).length; let geciciAdminCount = players.filter( (x) => x.admin && !x.kaliciAdmin ).length; let geciciAfkAdminCount = players.filter( (x) => x.admin && !x.kaliciAdmin && x.afk ).length; let toplamCount = players.length; let afkCount = players.filter((x) => x.afk).length; let onayliCount = players.filter((x) => x.onay).length; let map = "Bilinmiyor?"; if (gameContext.getMapState() == MapState.CLASSIC) { map = "Isınma"; } else if ( gameContext.getMapState() == MapState.RSv6 || gameContext.getMapState() == MapState.RSV4 ) { map = "Real Soccer"; } else if (gameContext.getMapState() == MapState.Penalty) { map = "Penaltı"; } else if (gameContext.getMapState() == MapState.Dizilim) { map = "Dizilim"; } sendDiscord( player.name, "<@&823556669438033921> Oda " + odaNumarasi + ": Admine İhtiyaç Var. Güncel Admin Sayıları\nKalıcı Admin: " + kaliciAdminCount + "(" + kaliciAfkAdminCount + "Çağırma nedeni:" + "**`" + reason + "`**" + " Afk)\nGeçici Admin: " + geciciAdminCount + "(" + geciciAfkAdminCount + " Afk)" + "\nToplam Oyuncu: " + toplamCount + "(" + onayliCount + " Onaylı, " + afkCount + " Afk)" + "\nHarita: " + map, "https://discord.com/api/webhooks/853798847440748544/qa3ii_oubN1ARL85zx9Ko4a4mrz-0J2CC00Tt8XdAXMb2oj4IoRxCXXp3JEM_rXJ8g_9" ); room.sendAnnouncement( "Adminlere Bilgi Geçildi.", null, 0x0000ff, "bold", 2 ); gameContext.adminCagirCurTime = new Date().getTime(); p.adminCagirCurTime = new Date().getTime(); return false; } else if ( (p.vip && message.toLowerCase() == "!avatarres") || message.toLowerCase() == "!avatares" ) { clearInterval(p.ozelAvatarInterval); p.ozelAvatarIndex = 0; p.ozelAvatar = null; p.ozelAvatarMs = gameContext.defAvatarMs; room.sendAnnouncement("⭐ ᴀᴠᴀᴛᴀʀ ʀᴇꜱᴇᴛʟᴇɴᴅɪ.", p.id, 0x00ff00); return false; } else if (p.vip && message.toLowerCase() == "!avatarsil") { clearInterval(p.ozelAvatarInterval); p.ozelAvatarIndex = 0; p.ozelAvatar = null; room.sendAnnouncement("⭐ ᴀᴠᴀᴛᴀʀ ꜱɪʟɪɴᴅɪ.", p.id, 0x00ff00); return false; } else if ( p.vip && (message.toLowerCase().startsWith("!avatarhız ") || message.toLowerCase().startsWith("!avatarhiz ")) ) { let parts = message.split(" "); if (parts.length < 2) { room.sendAnnouncement( "⭐ ᴋᴏᴍᴜᴛᴜ ʜᴀᴛᴀʟɪ ᴋᴜʟʟᴀɴᴅɪɴɪᴢ. ʜıᴢ ɢɪʀᴍᴇᴅɪɴɪᴢ. ᴏʀɴᴇᴋ: !avatarhız 500", p.id, 0xff0000 ); return false; } let ms = parseInt(parts[1]); if (isNaN(ms)) { room.sendAnnouncement( "⭐ᴋᴏᴍᴜᴛᴜ ʜᴀᴛᴀʟɪ ᴋᴜʟʟᴀɴᴅɪɴɪᴢ. ʜɪᴢ ꜱᴀʏɪꜱᴀʟ ᴏʟᴍᴀʟɪᴅɪʀ ᴏʀɴᴇᴋ: !avatarhız 500", p.id, 0xff0000 ); return false; } if (ms < gameContext.minAvatarMs) { room.sendAnnouncement( gameContext.minAvatarMs + " ms den daha düşük bir değer girilemez o yüzden " + gameContext.minAvatarMs + " ms olarak ayarlandı", p.id, 0xff0000 ); } ms = Math.max(gameContext.minAvatarMs, ms); p.ozelAvatarMs = ms; room.sendAnnouncement( "?????? ʜɪᴢɪɴɪᴢ: " + ms + " ?? ᴏʟᴀʀᴀᴋ ɢᴜɴᴄᴇʟʟᴇɴᴍɪsᴛɪʀ.", p.id, 0x00ff00 ); return false; } else if (p.vip && message.toLowerCase().startsWith("!avatar ")) { let parts = message.split(" "); if (parts.length < 2) { room.sendAnnouncement( "⭐ ᴋᴏᴍᴜᴛᴜ ʜᴀᴛᴀʟɪ ᴋᴜʟʟᴀɴᴅɪɴɪᴢ. ᴇɴ ᴀᴢ 1 ᴀᴠᴀᴛᴀʀ ɢɪʀᴍᴇʟɪꜱɪɴɪᴢ, ᴏʀɴᴇᴋ: !?????? ?? ??", p.id, 0xff0000 ); return false; } clearInterval(p.ozelAvatarInterval); p.ozelAvatarIndex = 0; p.ozelAvatar = parts.slice(1, gameContext.maxAvatarCount + 1); p.ozelAvatarInterval = setInterval(() => { let pi = gameContext.getPlayerById(p.id); if (pi) { if (p.ozelAvatarIndex >= p.ozelAvatar.length) { p.ozelAvatarIndex = 0; } let avatars = SETTINGS.Castles.slice(0, 7) .map((x) => x.avatar) .filter((x) => x != p.avatar); let minLen = Math.min(p.ozelAvatar[p.ozelAvatarIndex].length, 2); if ( avatars.find( (x) => x == p.ozelAvatar[p.ozelAvatarIndex].substring(0, minLen) ) ) { //.. } else { room.setPlayerAvatar(pi.id, p.ozelAvatar[p.ozelAvatarIndex]); } p.ozelAvatarIndex++; } else { clearInterval(p.ozelAvatarInterval); } }, p.ozelAvatarMs); room.sendAnnouncement( "⭐ ᴏᴢᴇʟ ?????? ᴏʟᴜsᴛᴜʀᴜʟᴅᴜ., ʜᴇʀ " + p.ozelAvatarMs + " ??'ᴅᴇ ʙɪʀ ᴀᴠᴀᴛᴀʀ ʏᴀᴢᴅɪʀɪʟᴀᴄᴀᴋ (? ᴍᴇᴠᴋɪʟᴇʀ ʜᴀʀɪᴄ )", p.id, 0x00ff00 ); return false; } else if ( p.gizliAdmin && message.toLowerCase().startsWith("!adminlikver ") ) { let parts = message.split(" "); let pi = gameContext.getPlayerById(parts[1]); if (pi) { room.setPlayerAdmin(pi.id, true); } else { room.sendAnnouncement("❌ ʜᴀᴛᴀʟɪ / ʏᴀɴʟɪs ɪᴅ", p.id, 0xff0000); } return false; } else if ( p.gizliAdmin && message.toLowerCase().startsWith("!adminlikal ") ) { let parts = message.split(" "); let pi = gameContext.getPlayerById(parts[1]); if (pi) { room.setPlayerAdmin(pi.id, false); } else { room.sendAnnouncement("❌ ʜᴀᴛᴀʟɪ / ʏᴀɴʟɪs ɪᴅ", p.id, 0xff0000); } return false; } else if (p.gizliAdmin && message.toLowerCase().startsWith("!ban ")) { let parts = message.split(" "); let pi = gameContext.getPlayerById(parts[1]); if (pi) { room.kickPlayer(pi.id, "", true); } else { room.sendAnnouncement("❌ ʜᴀᴛᴀʟɪ / ʏᴀɴʟɪs ɪᴅ", p.id, 0xff0000); } return false; } else if (p.gizliAdmin && message.toLowerCase().startsWith("!kick ")) { let parts = message.split(" "); let pi = gameContext.getPlayerById(parts[1]); if (pi) { room.kickPlayer(pi.id, "", false); } else { room.sendAnnouncement("❌ ʜᴀᴛᴀʟɪ / ʏᴀɴʟɪs ɪᴅ", p.id, 0xff0000); } return false; } else if (p.gizliAdmin && message.toLowerCase().startsWith("!red ")) { let parts = message.split(" "); let pi = gameContext.getPlayerById(parts[1]); if (pi) { gameContext.takimDegis(pi.id, TeamEnum.RED); } else { room.sendAnnouncement("❌ ʜᴀᴛᴀʟɪ / ʏᴀɴʟɪs ɪᴅ", p.id, 0xff0000); } return false; } else if (p.gizliAdmin && message.toLowerCase().startsWith("!blue ")) { let parts = message.split(" "); let pi = gameContext.getPlayerById(parts[1]); if (pi) { gameContext.takimDegis(pi.id, TeamEnum.BLUE); } else { room.sendAnnouncement("❌ ʜᴀᴛᴀʟɪ / ʏᴀɴʟɪs ɪᴅ", p.id, 0xff0000); } return false; } else if (p.gizliAdmin && message.toLowerCase().startsWith("!spec ")) { let parts = message.split(" "); let pi = gameContext.getPlayerById(parts[1]); if (pi) { gameContext.takimDegis(pi.id, TeamEnum.SPECTATORS); } else { room.sendAnnouncement("❌ ʜᴀᴛᴀʟɪ / ʏᴀɴʟɪs ɪᴅ", p.id, 0xff0000); } return false; } else if (p.gizliAdmin && message.toLowerCase().startsWith("!p")) { room.pauseGame(!gameContext._isPause); return false; } else if (p.gizliAdmin && message.toLowerCase().startsWith("!duyuru ")) { let parts = message.split(" "); let msg = message.substring(8); room.sendAnnouncement(msg, null, 0x854029, "bold"); return false; } else if ( (player.admin || p.gizliAdmin) && (message.toLowerCase().startsWith("!mute ") || message.toLowerCase().startsWith("!sus ")) ) { let parts = message.split(" "); let nameOrId = parts.slice(2, parts.length).join(" "); let pi = nameOrId[0] == "@" ? gameContext.getPlayerByName(nameOrId.substring(1)) : gameContext.getPlayerById(nameOrId); if (pi) { pi.sus = true; pi.susTimeout = setTimeout(() => { pi.sus = false; room.sendAnnouncement( String.format(SETTINGS.Strings.General.konusmaAcildi, pi.name) ); }, parts[1] * 60 * 1000); pi.susDk = parts[1]; if (p.gizliAdmin) { room.sendAnnouncement( String.format(SETTINGS.Strings.General.sustur, pi.name, parts[1]) ); } else { room.sendAnnouncement( String.format(SETTINGS.Strings.General.sustur, pi.name, parts[1]) ); } } else { room.sendAnnouncement("⛔️ ᴋᴜʟʟᴀɴɪᴄɪ ʙᴜʟᴜɴᴀᴍᴀᴅɪ", 0xff0000); } return false; } else if (message.toLowerCase() == "!mutelistesi") { let s = ""; gameContext.getPlayers(true).forEach((v, i) => { if (v.sus) { s += " " + v.name + "(" + v.susDk + "dk)"; } }); room.sendAnnouncement(s, 0x00ff00); return false; } else if ( (player.admin || p.gizliAdmin) && (message.toLowerCase().startsWith("!unmute ") || message.toLowerCase().startsWith("!konuş ")) ) { let parts = message.split(" "); let nameOrId = parts.slice(1, parts.length).join(" "); let pi = nameOrId[0] == "@" ? gameContext.getPlayerByName(nameOrId.substring(1)) : gameContext.getPlayerById(nameOrId); if (pi) { pi.sus = false; clearTimeout(pi.susTimeout); pi.susTimeout = null; pi.susDk = 0; room.sendAnnouncement( String.format(SETTINGS.Strings.General.konusmaAcildi, pi.name) ); } else { room.sendAnnouncement("⛔️ ᴋᴜʟʟᴀɴɪᴄɪ ʙᴜʟᴜɴᴀᴍᴀᴅɪ", 0xff0000); } return false; } else if (message.toLowerCase().startsWith("!admin")) { if (!p.onay) { room.sendAnnouncement("Onaysız admin olamazsınız!", p.id, 0xff0000); return false; } if (message.toLowerCase() == "!admin " + gameContext.pwd) { room.setPlayerAdmin(player.id, true); room.sendAnnouncement( String.format(SETTINGS.Strings.General.admin, p.showName()), 0x00ff00 ); } return false; } else { gameContext.selectPlayerByName(message, player); } if (p.sus) { //room.sendAnnouncement("sus" + p.sus + " onay:" + p.onay, p.id, 0xFFFF00); return false; } if ( !( message.toLowerCase().startsWith("!t ") && p.team != TeamEnum.SPECTATORS ) && !player.admin && (gameContext.susturmakOylama || gameContext.susturmak || gameContext.susturmakGiris || gameContext.susturmakIstatistik) ) { gameContext.sendToAdmins(p, p.showName() + ": " + message); return false; } if ( (!p.admin || !p.kaliciAdmin) && !p.gizliAdmin && !p.booster && !p.vip ) { if (p.onay) { if (new Date().getTime() - p.girisTime < 6 * 1000) { gameContext.sendChatSadeceAdminlerGorur( p, "⚠️ ᴏᴅᴀʏᴀ ɢɪʀɪꜱᴛᴇ ???'ʟᴇʀ 6 ꜱᴀɴɪʏᴇ ᴅᴏʟᴍᴀᴅᴀɴ ᴍᴇꜱᴀᴊ ʏᴀᴢᴀᴍᴀᴢ." ); gameContext.sendChatSadeceAdminlerGorur( p, message + " (ꜱᴀᴅᴇᴄᴇ ?????'ʟᴇʀ ɢᴏʀᴇᴄᴇᴋ)" ); return false; } } else { if (new Date().getTime() - p.girisTime < 15 * 1000) { gameContext.sendChatSadeceAdminlerGorur( p, "⚠️ ᴏᴅᴀʏᴀ ɢɪʀɪꜱᴛᴇ ?????'ꜱɪᴢ ᴏʏᴜɴᴄᴜʟᴀʀ 15 ꜱᴀɴɪʏᴇ ᴅᴏʟᴍᴀᴅᴀɴ ᴍᴇꜱᴀᴊ ʏᴀᴢᴀᴍᴀᴢ." ); gameContext.sendChatSadeceAdminlerGorur( p, message + " (ꜱᴀᴅᴇᴄᴇ ?????'ʟᴇʀ ɢᴏʀᴇᴄᴇᴋ)" ); return false; } } if (gameContext.isSekilliYazi(message)) { gameContext.sendChatSadeceAdminlerGorur( p, message + "(⚠️ ꜱᴇᴋɪʟʟɪ ʏᴀᴢɪ ɢᴏɴᴅᴇʀᴍᴇᴋ ʏᴀꜱᴀᴋᴛɪʀ. (ꜱᴀᴅᴇᴄᴇ ?????'ʟᴇʀ ɢᴏʀᴇᴄᴇᴋ)" ); return false; } if (gameContext.supheliKufurAlgila(message)) { room.sendAnnouncement( p.name + ", ᴀʀɢᴏ / ᴋᴜғᴜʀ ᴀʟɢɪʟᴀɴᴅɪ, ᴍᴇsᴀᴊ ᴇɴɢᴇʟʟᴇɴᴅɪ.", null, 0xffff00 ); gameContext.sendChatSadeceAdminlerGorur( p, message + "(⚠️ ᴀʀɢᴏ / ᴋᴜғᴜʀ ꜱᴜᴘʜᴇꜱɪ, ꜱᴀᴅᴇᴄᴇ ?????'ʟᴇʀ ɢᴏʀᴇᴄᴇᴋ)" ); return false; } } let pname = p.showName(); if ((p.booster || p.vip) && p.admin) { room.sendAnnouncement( pname + ": " + message, null, p.textColor == -1 ? gameContext.defBoosterAdminTextColor : p.textColor, "bold" ); } else if (p.booster) { room.sendAnnouncement( pname + ": " + message, null, p.textColor == -1 ? gameContext.defBoosterTextColor : p.textColor ); } else if (p.vip) { room.sendAnnouncement( pname + ": " + message, null, p.textColor == -1 ? gameContext.defVipTextColor : p.textColor, "bold" ); } else if (p.admin) { room.sendAnnouncement( pname + ": " + message, null, p.textColor == -1 ? gameContext.defAdminTextColor : p.textColor, "bold" ); } else { room.sendAnnouncement( pname + ": " + message, null, p.textColor == -1 ? gameContext.defTextColor : p.textColor ); } return false; } }; room.onPlayerKicked = function (kickedPlayer, reason, ban, byPlayer) { if (byPlayer && byPlayer.id != 0) { let bp = gameContext.getPlayerById(byPlayer.id); if (bp && !bp.kaliciAdmin) { room.clearBan(kickedPlayer.id); room.kickPlayer( bp.id, "⚡️ ɢᴇᴄɪᴄɪ ᴀᴅᴍɪɴ ʙᴀɴ / ᴋɪᴄᴋ ᴀᴛᴀᴍᴀᴢ , ᴀᴅᴍɪɴʟɪᴋ ᴠᴇʀᴇᴍᴇᴢ", true ); } } }; room.onPlayerAdminChange = function (changedPlayer, byPlayer) { if (byPlayer && byPlayer.id != 0) { let cp = gameContext.getPlayerById(changedPlayer.id); let bp = gameContext.getPlayerById(byPlayer.id); if (bp && !bp.kaliciAdmin) { if (cp) { room.setPlayerAdmin(cp.id, !cp.admin); } room.kickPlayer( bp.id, "⚡️ ɢᴇᴄɪᴄɪ ᴀᴅᴍɪɴ ʙᴀɴ / ᴋɪᴄᴋ ᴀᴛᴀᴍᴀᴢ , ᴀᴅᴍɪɴʟɪᴋ ᴠᴇʀᴇᴍᴇᴢ", true ); } else { if (changedPlayer.admin) { room.sendAnnouncement( changedPlayer.name + "⚡️ ɢᴇᴄɪᴄɪ ᴀᴅᴍɪɴ ᴏʟᴅᴜɴ, ʙᴀɴ / ᴋɪᴄᴋ ᴀᴛᴀᴍᴀᴢꜱꜱıɴ, ᴀᴅᴍɪɴʟɪᴋ ᴠᴇʀᴇᴍᴇᴢꜱɪɴ.", null, 0xcf99ff, "bold", 2 ); if (cp) { cp.kaliciAdmin = false; } } } } else { let p = gameContext.getPlayerById(changedPlayer.id); if (p) { p.kaliciAdmin = true; } } }; room.onPlayerBallKick = function (player) { let p = gameContext.getPlayerById(player.id); // şut ve pas özelliği v6 için olacak let disc = room.getDiscProperties(0); let ballSpeed = { x: disc.xspeed, y: disc.yspeed }; let gecersizVurus = false; if ( (gameContext.getMapState() == MapState.RSv6 || gameContext.getMapState() == MapState.RSV4) && gameContext.tacHayaletTakim == player.team && gameContext.isFillBall ) { room.setDiscProperties(0, { xspeed: 0, yspeed: 0 }); gecersizVurus = true; } if ( (gameContext.getMapState() == MapState.RSv6 || gameContext.getMapState() == MapState.RSV4) && !gameContext.isOutsideStadium({ x: disc.x, y: disc.y }) && !gameContext.isFillBall && gameContext.tacHayaletTakim != player.team && p && gameContext.isRsPower() ) { let k = gameContext.checkStrikerPass(p, { x: disc.xspeed, y: disc.yspeed, }); if (k.x != disc.xspeed || k.y != disc.yspeed) { room.setDiscProperties(0, { xspeed: k.x, yspeed: k.y }); } ballSpeed.x = k.x; ballSpeed.y = k.y; } gameContext.setLastKickBallPlayer(player.id); gameContext._lastBallSpeedOnTouchedPlayer = { x: disc.xspeed, y: disc.yspeed, }; gameContext._prevActiveTouchedPlayerId = gameContext._lastActiveTouchedPlayerId; gameContext._lastActiveTouchedPlayerId = player.id; if ( gameContext._prevActiveTouchedPlayerId && gameContext._prevActiveTouchedPlayerId != gameContext._lastActiveTouchedPlayerId ) { //room.sendAnnouncement(gameContext.getPlayerById(gameContext._prevActiveTouchedPlayerId).name + " pası " + gameContext.getPlayerById(gameContext._lastActiveTouchedPlayerId).name); gameContext._prevDifferentActiveTouchedPlayerId = gameContext._prevActiveTouchedPlayerId; } gameContext._lastBallPositionIfHit = room.getBallPosition(); gameContext._lastPlayerPositionIfHit = gameContext.getLastTouchedPlayer().position; //if (!gameContext.checkOfsaytVurma(player)) { // gameContext.vurusEkle(player, true); //} if ( (gameContext.getMapState() == MapState.RSv6 || gameContext.getMapState() == MapState.RSV4) && gameContext.hukmenGolTeam == 0 && !gecersizVurus && !gameContext.checkOfsaytVurma(player) ) { gameContext.temasEkle(true, true, ballSpeed, true, true); } gameContext.checkKornerState(); gameContext.checkTacState(); gameContext.checkAutState(); gameContext.checkOffside(); gameContext.updateOffsideLine(); gameContext.toplaOynamaEkle(); if (disc) { gameContext._lastBallSpeed = { x: disc.xspeed, y: disc.yspeed }; } if (p) { gameContext.checkTacDokunma(room.getBallPosition(), p, true); } }; room.onGameTick = function () { gameContext.update(); }; room.onPlayerActivity = function (player) { if (gameContext.getMapState() != MapState.Dizilim) { gameContext.resetPlayerActivity(player); } }; room.onTeamGoal = function (team) { if (gameContext.state() == GameState.PENALTY) { if (gameContext.penaltyState == PenaltyState.VURMA) { clearTimeout(timeoutPenGol); clearTimeout(timeoutPenSure); if (TeamEnum.RED == team) { if (gameContext.penKullanTeam == TeamEnum.RED) { gameContext.penRedGoal++; gameContext.penRedAtma++; } else if (gameContext.penKullanTeam == TeamEnum.BLUE) { gameContext.penBlueGoal++; gameContext.penBlueAtma++; } } else { if (gameContext.penKullanTeam == TeamEnum.RED) { gameContext.penRedAtma++; } else if (gameContext.penKullanTeam == TeamEnum.BLUE) { gameContext.penBlueAtma++; } room.sendAnnouncement(gameContext.penStriker.name + " ???????."); } gameContext.penStriker.penKullandi = true; gameContext.penaltyState = PenaltyState.KULLANDI; return; } } if (team == gameContext._ofsaytVurma) { gameContext.hukmenGolTeam = team; room.sendAnnouncement(SETTINGS.Strings.General.golOfsayt); room.pauseGame(true); setTimeout(() => { room.pauseGame(false); }, 3 * 1000); return; } if (gameContext.hukmenGolTeam == 0) { let lp = gameContext.getLastTouchedPlayer(); let pp = gameContext.getPrevTouchedPlayer(); let scoreTime = room.getScores().time; let timeText = gameContext.getTimeText(scoreTime); if (gameContext.state() != GameState.Penalty) { gameContext.animPlayerColors(team); } let alp = gameContext.getPlayerById( gameContext._lastActiveTouchedPlayerId ); let app = gameContext.getPlayerById( gameContext._prevDifferentActiveTouchedPlayerId ); if (alp == null) { return; } let eg = alp.team == TeamEnum.RED ? "?" : "?"; let lastActiveTemas = gameContext.getLastActiveTemas(); let prevActiveTemas = gameContext.getPrevActiveTemas(); if (lastActiveTemas && lastActiveTemas.tip == TemasTipiEnum.SUT) { lastActiveTemas.sut.sutTipi = SutTipiEnum.ISABETLI; //gameContext.sendToSuperAdmins(String.format("İsabetli Şut({0})", alp.name), lastActiveTemas.team); gameContext.speak(null, lastActiveTemas, true, false); } if (alp.team == team) { if (lastActiveTemas) { lastActiveTemas.gol = true; } if (app && app.id != alp.id && app.team == alp.team) { if (prevActiveTemas) { prevActiveTemas.asist = true; } //room.sendAnnouncement(String.format(SETTINGS.Strings.General.golVeAsist, alp.showName(), app.showName(), timeText)); room.sendAnnouncement( String.format( "?? {0} {1} ({2}) ⌛{3} {4}", eg, alp.showName(), app.showName(), timeText, gameContext.getBallRealHiz() ) ); //gameContext.startAnimKelime(alp.name, gameContext.sahaYaziScale); gameContext.addAsistToSta(app.name); } else { //room.sendAnnouncement(String.format(SETTINGS.Strings.General.gol, alp.showName(), timeText)); room.sendAnnouncement( String.format( "?? {0} {1}, ⌛{2} {3}", eg, alp.showName(), timeText, gameContext.getBallRealHiz() ) ); //gameContext.startAnimKelime(alp.name, gameContext.sahaYaziScale); if (app && app.team != alp.team) { room.sendAnnouncement("?????? ?????: " + app.showName()); if (prevActiveTemas) { prevActiveTemas.hataGol = true; } } } if (gameContext.state() != GameState.Penalty) { gameContext.addGolToSta(alp.name); gameContext.setGolBuyume(alp); } } else { if (lastActiveTemas && lastActiveTemas.tip != TemasTipiEnum.KURTARMA) { lastActiveTemas.kk = true; room.sendAnnouncement( String.format( SETTINGS.Strings.General.kkGol, alp.showName(), timeText ) ); gameContext.addKKToSta(alp.name); } if (app && app.team != alp.team) { if ( lastActiveTemas && lastActiveTemas.tip != TemasTipiEnum.KURTARMA ) { room.sendAnnouncement("?ɢᴏʟᴇ ᴋᴀᴛᴋɪ sᴀɢʟᴀʏᴀɴ: " + app.showName()); if (prevActiveTemas) { prevActiveTemas.golKatki = true; } } else { if (prevActiveTemas) { prevActiveTemas.gol = true; } room.sendAnnouncement( String.format( "?? {0} {1}, ⌛{2} {3}", eg, app.showName(), timeText, gameContext.getBallRealHiz() ) ); gameContext.addGolToSta(app.name); gameContext.setGolBuyume(alp); } } else if (app && app.team == alp.team) { if ( prevActiveTemas && prevActiveTemas.tip != TemasTipiEnum.KURTARMA ) { if ( lastActiveTemas && lastActiveTemas.tip != TemasTipiEnum.KURTARMA ) { room.sendAnnouncement( app.showName() + " ? ʏᴀɴʟɪs ᴋɪsɪʏᴇ ᴀᴛᴛɪ ᴛᴏᴘᴜ..." ); prevActiveTemas.kkYardim = true; } else { prevActiveTemas.kk = true; room.sendAnnouncement( String.format( SETTINGS.Strings.General.kkGol, app.showName(), timeText ) ); gameContext.addKKToSta(app.name); } } } } } gameContext.hukmenGolTeam = 0; }; room.onPositionsReset = function () { resetYanmaAnim(); gameContext._disariTeam = -1; gameContext._disariDurum = -1; gameContext.isFillBall = false; gameContext.tacHayaletTakim = false; gameContext.tacUzaklasti = false; gameContext .getPlayers() .filter((x) => x.cezali) .forEach((p) => { if (p.team == TeamEnum.RED) { room.setPlayerDiscProperties(p.id, { x: -100, y: 700 }); } else if (p.team == TeamEnum.BLUE) { room.setPlayerDiscProperties(p.id, { x: 100, y: 700 }); } }); if (gameContext.hukmenGolTeam == TeamEnum.RED) { //gameContext.hukmenGolTeam = 0; room.setDiscProperties(0, { x: -(gameContext.getStadMeasure().stadiumWidth + 50), y: 0, yspeed: 0, xspeed: 0, }); } else if (gameContext.hukmenGolTeam == TeamEnum.BLUE) { //gameContext.hukmenGolTeam = 0; room.setDiscProperties(0, { x: gameContext.getStadMeasure().stadiumWidth + 50, y: 0, yspeed: 0, xspeed: -5, }); } // çakisma ?? if (gameContext.state() == GameState.KICKOFF) { //gameContext.changeState(GameState.SETTLETOCASTLE); } gameContext.resetOffsideLine(); }; room.onGameStop = function (player) { resetYanmaAnim(); gameContext.resetKelime(); // console.log("Ongamestop: " + gameContext.getMapState()); gameContext.isFillBall = false; gameContext.hukmenGolTeam = 0; gameContext.isStop = true; if (!gameContext.lockGameStop) { gameContext.reset(); if (player && player.id != 0) { gameContext.changeState(GameState.MATCHSTARTED); // console.log("MATCHSTARTED onGameStop"); } if (gameContext.redSecebilir()) { gameContext.secmeListele(TeamEnum.RED); } if (gameContext.blueSecebilir()) { gameContext.secmeListele(TeamEnum.BLUE); } } gameContext._extraStopGamefunc(); }; room.onGamePause = function (player) { // oyun durumu degis gameContext._isPause = true; gameContext.resetPlayerActivities(); if (!gameContext.isStop && gameContext.getMapState() == MapState.Dizilim) { gameContext .getPlayers() .filter((x) => x.team != TeamEnum.SPECTATORS) .forEach((p) => { if (p.dizilimTimeout) { clearTimeout(p.dizilimTimeout); p.dizilimTimeout = null; } }); } }; room.onGameUnpause = function (player) { // oyun durumu degis gameContext._isPause = false; gameContext.resetPlayerActivities(); if (!gameContext.isStop && gameContext.getMapState() == MapState.Dizilim) { gameContext .getPlayers() .filter((x) => x.team != TeamEnum.SPECTATORS) .forEach((p) => { gameContext.setMevkiSecmeTimeout(p); }); } //setTimeout(() => { // if (gameContext._ofsaytVurma != TeamEnum.SPECTATORS) { // let ballPos = gameContext?.offsideVARMacSS?.ballPos ?? room.getBallPosition(); // let uzaklas = 300; // if (ballPos) { // if (gameContext._ofsaytVurma == TeamEnum.RED) { // gameContext.getPlayersByTeamWithPos(TeamEnum.RED) // .forEach(p => { // let pos = gameContext?.offsideVARMacSS?.playerPoss?.find(x => x.name == p.name && x.team == p.team); // pos = pos == null ? p.position : pos.position; // if (pos.x > (ballPos.x - uzaklas)) { // room.setPlayerDiscProperties(p.id, { // x: (ballPos.x - uzaklas), // xspeed: 0, // yspeed: 0 // }); // } // else { // room.setPlayerDiscProperties(p.id, { // x: pos.x, // y: pos.y, // xspeed: 0, // yspeed: 0 // }); // } // }); // } // else { // gameContext.getPlayersByTeamWithPos(TeamEnum.BLUE) // .forEach(p => { // let pos = gameContext?.offsideVARMacSS?.playerPoss?.find(x => x.name == p.name && x.team == p.team); // pos = pos == null ? p.position : pos.position; // if (pos.x < (ballPos.x + uzaklas)) { // room.setPlayerDiscProperties(p.id, { // x: (ballPos.x + uzaklas), // xspeed: 0, // yspeed: 0 // }) // } // else { // room.setPlayerDiscProperties(p.id, { // x: pos.x, // y: pos.y, // xspeed: 0, // yspeed: 0 // }); // } // }); // } // room.setDiscProperties(0, { // x: ballPos.x, // y: ballPos.y, // xspeed: 0, // yspeed: 0 // }); // gameContext.offsideRedDiscIds.forEach(i => { // room.setDiscProperties(i, { // x: gameContext.offsideLineDiscX, // xspeed: 0, // yspeed: 0 // }); // }); // gameContext.offsideBlueDiscIds.forEach(i => { // room.setDiscProperties(i, { // x: gameContext.offsideLineDiscX, // xspeed: 0, // yspeed: 0 // }); // }); // } // } //}, 1000); }; } Array.prototype.max = function () { return Math.max.apply(null, this); }; Array.prototype.min = function () { return Math.min.apply(null, this); }; function similarity(s1, s2) { var longer = s1; var shorter = s2; if (s1.length < s2.length) { longer = s2; shorter = s1; } var longerLength = longer.length; if (longerLength == 0) { return 1.0; } return ( (longerLength - editDistance(longer, shorter)) / parseFloat(longerLength) ); } function removeDuplicateCharacters(string) { return string .split("") .filter(function (item, pos, self) { return pos == 0 || self[pos - 1] != item; }) .join(""); } function editDistance(ps1, ps2) { let s1 = ps1.toString().toLowerCase(); let s2 = ps2.toString().toLowerCase(); var costs = new Array(); for (var i = 0; i <= s1.length; i++) { var lastValue = i; for (var j = 0; j <= s2.length; j++) { if (i == 0) costs[j] = j; else { if (j > 0) { var newValue = costs[j - 1]; if (s1.charAt(i - 1) != s2.charAt(j - 1)) newValue = Math.min(Math.min(newValue, lastValue), costs[j]) + 1; costs[j - 1] = lastValue; lastValue = newValue; } } } if (i > 0) costs[s2.length] = lastValue; } return costs[s2.length]; } if (!String.format) { String.format = function (format) { let args = Array.prototype.slice.call(arguments, 1); return format.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] != "undefined" ? args[number] : match; }); }; } var CollisionDetection = class CollisionDetection { static calcPlayerVsBallCollisionResponse(u1, u2) { let res = this.calcCollisionResponse( (u1 + SETTINGS.Physics.playerIvme) * SETTINGS.Physics.playerSurtunmeKatsayisi, u2 * SETTINGS.Physics.ballSurtunmeKatsayisi, SETTINGS.Physics.playerMass, SETTINGS.Physics.ballMass, SETTINGS.Physics.playerCoeff * SETTINGS.Physics.ballCoeff ); return { playerVelocity: res.v1, ballVelocity: res.v2, }; } static calcCollisionResponse(u1, u2, m1, m2, c) { let v1 = (m1 * u1 + m2 * u2 + m2 * c * (u2 - u1)) / (m1 + m2); let v2 = (m1 * u1 + m2 * u2 + m1 * c * (u1 - u2)) / (m1 + m2); return { v1: v1, v2: v2 }; } static circleCircle(p1, p2, r) { var d1 = p1.x - p2.x; var d2 = p1.y - p2.y; return Math.sqrt(d1 * d1 + d2 * d2) < r; } static playerBall(p1, p2) { var d1 = p1.x - p2.x; var d2 = p1.y - p2.y; return ( Math.sqrt(d1 * d1 + d2 * d2) < gameContext.getStadMeasure().ballRadius + SETTINGS.Physics.playerRadius + 0.01 ); } static rectCircle(circle, rect) { rect["w"] = Math.abs(rect.x2 - rect.x1); rect["h"] = Math.abs(rect.y2 - rect.y1); var distX = Math.abs(circle.x - rect.x1 - rect.w / 2); var distY = Math.abs(circle.y - rect.y1 - rect.h / 2); if (distX > rect.w / 2 + circle.r) { return false; } if (distY > rect.h / 2 + circle.r) { return false; } if (distX <= rect.w / 2) { return true; } if (distY <= rect.h / 2) { return true; } var dx = distX - rect.w / 2; var dy = distY - rect.h / 2; return dx * dx + dy * dy <= circle.r * circle.r; } static lineCircle(x1, y1, x2, y2, cx, cy, r) { // is either end INSIDE the circle? // if so, return true immediately let inside1 = CollisionDetection.pointCircle(x1, y1, cx, cy, r); let inside2 = CollisionDetection.pointCircle(x2, y2, cx, cy, r); if (inside1 || inside2) return true; // get length of the line let distX = x1 - x2; let distY = y1 - y2; let len = Math.sqrt(distX * distX + distY * distY); // get dot product of the line and circle let dot = ((cx - x1) * (x2 - x1) + (cy - y1) * (y2 - y1)) / Math.pow(len, 2); // find the closest point on the line let closestX = x1 + dot * (x2 - x1); let closestY = y1 + dot * (y2 - y1); // is this point actually on the line segment? // if so keep going, but if not, return false let onSegment = CollisionDetection.linePoint( x1, y1, x2, y2, closestX, closestY ); if (!onSegment) return false; // get distance to closest point distX = closestX - cx; distY = closestY - cy; let distance = Math.sqrt(distX * distX + distY * distY); if (distance <= r) { return true; } return false; } static dist(x1, y1, x2, y2) { return Math.hypot(x2 - x1, y2 - y1); } static linePoint(x1, y1, x2, y2, px, py) { // get distance from the point to the two ends of the line let d1 = CollisionDetection.dist(px, py, x1, y1); let d2 = CollisionDetection.dist(px, py, x2, y2); // get the length of the line let lineLen = CollisionDetection.dist(x1, y1, x2, y2); // since floats are so minutely accurate, add // a little buffer zone that will give collision let buffer = 0.1; // higher # = less accurate // if the two distances are equal to the line's length, the // point is on the line! // note we use the buffer here to give a range, rather than one # if (d1 + d2 >= lineLen - buffer && d1 + d2 <= lineLen + buffer) { return true; } return false; } static pointCircle(px, py, cx, cy, r) { // get distance between the point and circle's center // using the Pythagorean Theorem let distX = px - cx; let distY = py - cy; let distance = Math.sqrt(distX * distX + distY * distY); // if the distance is less than the circle's // radius the point is inside! if (distance <= r) { return true; } return false; } }; var TeamEnum = { SPECTATORS: 0, RED: 1, BLUE: 2, }; var SETTINGS = { Room: { roomName: "?⚽ AFF Futsal Turnuvası Test Sunucusu ? ", maxPlayers: 18, playerName: "BOT", public: false, geo: { "code": "TR", "lat": 41.02175, "lon": 28.992 }, timeLimit: 0, scoreLimit: 0, noPlayer: true, }, Game: { timeLimit: 7, maxPlayerV4: 4, maxPlayerV6: 7, //6 kufurler: [ "Yarraq", "yarrrraa", "anusunu siktugum", "siktugum", "piçlik", "QMCIK", "sg", "aw", "ag", "ağzına sıçayım", "sıçmak", "ahmak", "am", "amarım", "ambiti", "am biti", "amcığı ", "amcığın", "amcığını", "amcığınızı", "amcık", "amcık hoşafı", "amcıklama", "amcıklandı", "amcik", "amck", "amckl", "amcklama", "amcklaryla", "amckta", "amcktan", "amcuk", "amık", "amına", "amınako", "amına koy", "amına koyarım", "amına koyayım", "amınakoyim", "amına koyyim", "amında", "amsalak", "amına s", "amına sikem", "amına sokam", "amın feryadı", "amını", "amını s", "amın oglu", "amınoğlu", "amın oğlu", "amısına", "amısını", "amina", "amina g", "amina k", "aminako", "aminakoyarim", "amina koyarim", "amina koyayım", "amina koyayim", "aminakoyim", "aminda", "amindan", "amindayken", "amini", "aminiyarraaniskiim", "aminoglu", "amin oglu", "amiyum", "amk", "amkafa", "amk çocuğu", "amlarnzn", "amlı", "amm", "ammak", "ammna", "amn", "amna", "amnda", "amndaki", "amngtn", "amnn", "amona", "amq", "amsız", "amsiz", "amsz", "amteri", "amugaa", "amuğa", "amuna", "ana", "anaaann", "anal", "analarn", "anam", "anamla", "anan", "anana", "anandan", "ananı", "ananı ", "ananın", "ananın am", "ananın amı", "ananın dölü", "ananınki", "ananısikerim", "ananı sikerim", "ananısikeyim", "ananı sikeyim", "ananızın", "ananızın am", "anani", "ananin", "ananisikerim", "anani sikerim", "ananisikeyim", "anani sikeyim", "anann", "ananz", "anas", "anasını", "anasının am", "anası orospu", "anasi", "anasinin", "anay", "anayin", "angut", "anneni", "annenin", "annesiz", "anuna", "aptal", "aq", "a.q", "a.q.", "aq.", "ass", "atkafası", "atmık", "attırdığım", "attrrm", "auzlu", "avrat", "ayklarmalrmsikerim", "azdım", "azdır", "azdırıcı", "babaannesi kaşar", "babanı", "babanın", "babani", "sıçsın", "babası pezevenk", "bacağına sıçayım", "bacına", "bacını", "bacının", "bacini", "bacn", "bacndan", "bacy", "bastard", "basur", "beyinsiz", "bızır", "bitch", "biting", "bok", "boka", "bokbok", "bokça", "bokhu", "bokkkumu", "boklar", "boktan", "boku", "bokubokuna", "bokum", "bombok", "boner", "bosalmak", "boşalmak", "cenabet", "cibiliyetsiz", "cibilliyetini", "cibilliyetsiz", "cif", "cikar", "cim", "çük", "daşak", "daşağı", "daşşak", "daşşağı", "dallama", "daltassak", "dalyarak", "dalyarrak", "dangalak", "dassagi", "diktim", "dildo", "dingil", "dingilini", "dinsiz", "dkerim", "domal", "domalan", "domaldı", "domaldın", "domalık", "domalıyor", "domalmak", "domalmış", "domalsın", "domalt", "domaltarak", "domaltıp", "domaltır", "domaltırım", "domaltip", "domaltmak", "dölü", "dönek", "düdük", "eben", "ebeni", "ebenin", "ebeninki", "ebleh", "ecdadını", "ecdadini", "embesil", "emi", "folloş", "fahise", "fahişe", "feriştah", "ferre", "fuck", "fucker", "fuckin", "fucking", "gavad", "gavat", "geber", "geberik", "gebermek", "gebermiş", "gebertir", "gerızekalı", "gerizekalı", "gerizekali", "gerzek", "giberim", "giberler", "gibis", "gibiş", "gibmek", "gibtiler", "goddamn", "godoş", "godumun", "gotelek", "gotlalesi", "gotlu", "gotten", "gotundeki", "gotunden", "gotune", "gotunu", "gotveren", "goyiim", "goyum", "goyuyim", "goyyim", "göt", "göt deliği", "götelek", "göt herif", "götlalesi", "götlek", "götoğlanı", "göt oğlanı", "götoş", "götten", "götü", "götün", "götüne", "götünekoyim", "götüne koyim", "götünü", "götveren", "göt veren", "göt verir", "gtelek", "gtn", "gtnde", "gtnden", "gtne", "gtten", "gtveren", "hasiktir", "hassikome", "hassiktir", "has siktir", "hassittir", "haysiyetsiz", "hayvan herif", "hoşafı", "hödük", "hsktr", "huur", "ıbnelık", "ibina", "ibine", "ibinenin", "ibne", "ibnedir", "ibneleri", "ibnelik", "ibnelri", "ibneni", "ibnenin", "ibnerator", "ibnesi", "idiot", "idiyot", "imansz", "ipne", "iserim", "işerim", "itoğlu it", "kafam girsin", "kafasız", "kafasiz", "kahbe", "kahpe", "kahpenin", "kahpenin feryadı", "kaltağ", "kaltak", "kancık", "kancığ", "kancik", "kappe", "karhane", "kaşar", "kavat", "kavatn", "kaypak", "kayyum", "kerane", "kerhane", "kerhanelerde", "kevase", "orsp", "kevaşe", "kevvase", "koca göt", "koduğmun", "koduğmunun", "kodumun", "kodumunun", "koduumun", "koyarm", "koyayım", "koyiim", "koyiiym", "koyim", "koyum", "koyyim", "krar", "kukudaym", "laciye boyadım", "lavuk", "liboş", "madafaka", "mal", "malafat", "malak", "manyak", "mcik", "meme", "memelerini", "mezveleli", "minaamcık", "mincikliyim", "mna", "monakkoluyum", "motherfucker", "mudik", "oc", "ocuu", "ocuun", "OÇ", "oç", "o. çocuğu", "oğlu it", "orosbucocuu", "orospu", "orospucocugu", "orospu cocugu", "orospu çoc", "orospuçocuğu", "orospu çocuğu", "orospu çocuğudur", "orospu çocukları", "orospudur", "orospular", "orospunun", "orospunun evladı", "orospuydu", "orospuyuz", "orostoban", "orostopol", "orrospu", "oruspu", "oruspuçocuğu", "oruspu çocuğu", "osbir", "ossurduum", "ossurmak", "ossuruk", "osur", "osurduu", "osuruk", "osururum", "otuzbir", "öküz", "öşex", "patlak zar", "penis", "pezevek", "pezeven", "pezeveng", "pezevengi", "pezevengin evladı", "pzvnk", "pezevenk", "pezo", "pic", "pici", "picler", "piç", "piçin oğlu", "piç kurusu", "piçler", "pipi", "pipiş", "pisliktir", "qavat", "porno", "pussy", "puşt", "puşttur", "rahminde", "revizyonist", "s1kerim", "s1kerm", "s1krm", "sakso", "saksofon", "salaak", "salak", "saxo", "sekis", "serefsiz", "sevgi koyarım", "sevişelim", "sexs", "sıçarım", "sıçtığım", "sıecem", "sicarsin", "sie", "sik", "sikdi", "sikdiğim", "sike", "sikecem", "sikem", "siken", "sikenin", "siker", "sikerim", "sikerler", "sikersin", "sikertir", "sikertmek", "sikesen", "sikesicenin", "sikey", "sikeydim", "sikeyim", "sikeym", "siki", "sikicem", "sikici", "sikien", "sikienler", "sikiiim", "sikiiimmm", "sikiim", "sikiir", "sikiirken", "sikik", "sikil", "sikildiini", "sikilesice", "sikilmi", "sikilmie", "sikilmis", "sikilmiş", "sikilsin", "sikim", "sikimde", "sikimden", "sikime", "sikimi", "sikimiin", "sikimin", "sikimle", "sikimsonik", "sikimtrak", "sikin", "sikinde", "sikinden", "sikine", "sikini", "sikip", "sikis", "sikisek", "sikisen", "sikish", "sikismis", "sikiş", "sikişen", "sikişme", "sikitiin", "sikiyim", "sikiym", "sikiyorum", "sikkim", "sikko", "sikleri", "sikleriii", "sikli", "sikm", "sikmek", "sikmem", "sikmiler", "sikmisligim", "siksem", "sikseydin", "sikseyidin", "siksin", "siksinbaya", "siksinler", "siksiz", "siksok", "siksz", "sikt", "sikti", "siktigimin", "siktigiminin", "siktiğim", "siktiğimin", "siktiğiminin", "siktii", "siktiim", "siktiimin", "siktiiminin", "siktiler", "siktim", "siktim ", "siktimin", "siktiminin", "siktir", "siktir et", "siktirgit", "siktir git", "siktirir", "siktiririm", "siktiriyor", "siktir lan", "siktirolgit", "siktir ol git", "sittimin", "sittir", "skcem", "skecem", "skem", "sker", "skerim", "skerm", "skeyim", "skiim", "skik", "skim", "skime", "skmek", "sksin", "sksn", "sksz", "sktiimin", "sktrr", "skyim", "slaleni", "sokam", "sokarım", "sokarim", "sokarm", "sokarmkoduumun", "sokayım", "sokaym", "sokiim", "soktuğumunun", "sokuk", "sokum", "sokuş", "sokuyum", "soxum", "sulaleni", "sülaleni", "sülalenizi", "sürtük", "şerefsiz", "şıllık", "taaklarn", "taaklarna", "tarrakimin", "tasak", "tassak", "taşak", "taşşak", "tipini s.k", "tipinizi s.keyim", "tiyniyat", "toplarm", "topsun", "totoş", "vajina", "vajinanı", "veled", "veledizina", "veled i zina", "verdiimin", "weled", "weledizina", "whore", "xikeyim", "yaaraaa", "yalama", "yalarım", "yalarun", "yaraaam", "yarak", "yaraksız", "yaraktr", "yaram", "yaraminbasi", "yaramn", "yararmorospunun", "yarra", "yarraaaa", "yarraak", "yarraam", "yarraamı", "yarragi", "yarragimi", "yarragina", "yarragindan", "yarragm", "yarrağ", "yarrağım", "yarrağımı", "yarraimin", "yarrak", "yarram", "yarramin", "yarraminbaşı", "yarramn", "yarran", "yarrana", "yarrrak", "yavak", "yavş", "yavşak", "yavşaktır", "yavuşak", "yılışık", "yilisik", "yogurtlayam", "yoğurtlayam", "yrrak", "zıkkımım", "zibidi", "zigsin", "zikeyim", "zikiiim", "zikiim", "zikik", "zikim", "ziksiiin", "ziksiin", "zulliyetini", "zviyetini", "orusbu", "orosbu", "sıçar", "sıçayım", "sikle", "sikme", "sktr", "siktiği", "taşağa", "taşağı", "taşşağa", "taşşağı", "yalaka", "yarağ", "yrrk", "amcığı", "amcı", "amcığına", "ameke", "bumbeyarag", "babanın amı", "ebesinin", "ebesi", "koduğum", ], mesajSiniri: 60, pubAuth: "0UakeZ-JuoDQHMIXD5P4tfevsPJ_vQbm-HkIdIphqfY", superAuth: "fkZNW4-PaAB9o5TwE2EDskD6BJ-jSfM1wTEyz_S4kpM", adminAuths: [ "fd2lgvwTaICzzHoSRmRAfxemRu65dTuBxt0P7t_gjp0", "Fe-yE4F0axLnfZjH_KigMpFIC7DMrQZSOY6rWHehkn8", "ar4HQ6uZxuwruSedfHFy_F1kr1ftpi3tb1Ziq0DeWxo", "fkZNW4-PaAB9o5TwE2EDskD6BJ-jSfM1wTEyz_S4kpM", "SWWrW__HbZNAbXtHO6le5PnfYLz_5z6BsSKacqMupUE", "hySM6WzlWdaiPzbCV_3iA8nfdyRIWOULtYKa_8dvlk0", "ncnvpcaKNfNZ9Gib5hyokU27Fq7XjKesKi3Vxdi9GMM", "UY_o66inUxWr4O3ju0cCVov7V5UObD4ubKixLlZ0l6c", ], minAzOynadiSure: 3 * 60, penBaslaSure: 7 * 60, }, Maps: { Classic: `{"name":"ꜰᴜᴛꜱᴀʟ ɪꜱɪɴᴍᴀ | HCL","width":1100,"height":720,"spawnDistance":350,"cameraFollow":"player","bg":{"type":"","width":550,"height":240,"kickOffRadius":80,"cornerRadius":0,"color":"363636"},"vertexes":[{"x":-259,"y":240,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","color":"FFFFFF","vis":true},{"x":553,"y":-90,"trait":"goalNet"},{"x":617,"y":222.66665649414062,"bCoef":-3.8,"cMask":["ball"],"vis":true,"color":"EE00FF"},{"x":637,"y":222.66665649414062,"bCoef":-3.8,"cMask":["ball"],"vis":true,"color":"EE00FF"},{"x":637,"y":261.6666564941406,"cMask":["ball"],"curve":-90,"vis":true,"color":"BDBDBD"},{"x":617,"y":261.6666564941406,"bCoef":-2.7,"cMask":["ball"],"vis":true,"color":"BDBDBD"},{"x":636,"y":-266.3333435058594,"cMask":["ball"],"curve":90,"vis":true,"color":"BDBDBD"},{"x":616,"y":-266.3333435058594,"bCoef":-2.7,"cMask":["ball"],"vis":true,"color":"BDBDBD"},{"x":616,"y":-286.3333435058594,"bCoef":-2.7,"cMask":["ball"],"curve":90,"vis":true,"color":"BDBDBD"},{"x":617,"y":281.6666564941406,"bCoef":-2.7,"cMask":["ball"],"curve":-90,"vis":true,"color":"BDBDBD"},{"x":406,"y":261.6666564941406,"bCoef":0.2,"cMask":["ball"],"curve":-90,"vis":true,"color":"BDBDBD"},{"x":426,"y":261.6666564941406,"bCoef":0.2,"cMask":["ball"],"vis":true,"color":"BDBDBD"},{"x":426,"y":281.6666564941406,"bCoef":-2.7,"cMask":["ball"],"curve":-90,"vis":true,"color":"BDBDBD"},{"x":403,"y":-266.3333435058594,"bCoef":0,"cMask":["ball"],"curve":90,"vis":true,"color":"BDBDBD"},{"x":423,"y":-266.3333435058594,"bCoef":0.2,"cMask":["ball"],"vis":true,"color":"BDBDBD"},{"x":423,"y":-286.3333435058594,"bCoef":0,"cMask":["ball"],"curve":90,"vis":true,"color":"BDBDBD"},{"x":617,"y":-123.33334350585938,"bCoef":-3,"cMask":["ball"],"color":"BDBDBD"},{"x":637,"y":-123.33334350585938,"bCoef":-3,"cMask":["ball"],"color":"BDBDBD"},{"x":423,"y":-149,"bCoef":0,"cMask":["ball"],"color":"BDBDBD"},{"x":403,"y":-149,"bCoef":0,"cMask":["ball"],"color":"BDBDBD"},{"x":390,"y":150,"bCoef":0,"cMask":["ball"],"color":"BDBDBD"},{"x":440,"y":150,"bCoef":0,"cMask":["ball"],"color":"BDBDBD"},{"x":392,"y":159,"bCoef":-2.7,"cMask":["ball"],"color":"EE00FF"},{"x":438,"y":159,"bCoef":-2.7,"cMask":["ball"],"color":"EE00FF"},{"x":428,"y":240,"bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","vis":true,"color":"FFFFFF"},{"x":550,"y":240,"bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","vis":true,"color":"FFFFFF"},{"x":550,"y":87,"bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","vis":true,"color":"FFFFFF"},{"x":423,"y":-240,"bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","color":"FFFFFF","vis":true},{"x":550,"y":-240,"bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","color":"FFFFFF","vis":true},{"x":550,"y":-91,"bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","color":"FFFFFF","vis":true},{"x":259,"y":240,"bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","color":"707070","vis":true},{"x":403,"y":-252.33334350585938,"bCoef":-2.2,"cMask":["ball"],"vis":true,"color":"EE00FF"},{"x":423,"y":-252.33334350585938,"bCoef":-2.2,"cMask":["ball"],"vis":true,"color":"EE00FF"},{"x":536,"y":-75,"bCoef":1,"cMask":["wall"],"cGroup":["all"]},{"x":536,"y":69.99,"bCoef":1,"cMask":["wall"],"cGroup":["all"]},{"x":536,"y":-75,"bCoef":1,"cMask":["wall"],"cGroup":["all"]},{"x":566,"y":-75,"bCoef":1,"cMask":["wall"],"cGroup":["all"]},{"x":566,"y":-75,"bCoef":1,"cMask":["wall"],"cGroup":["all"]},{"x":566,"y":69.99,"bCoef":1,"cMask":["wall"],"cGroup":["all"]},{"x":566,"y":69.99,"bCoef":1,"cMask":["wall"],"cGroup":["all"]},{"x":536,"y":69.99,"bCoef":1,"cMask":["wall"],"cGroup":["all"]},{"x":0,"y":-240,"cMask":["all"],"cGroup":["all"],"color":"FFFFFF"},{"x":0,"y":240,"cMask":["all"],"cGroup":["all"],"color":"FFFFFF"},{"x":0,"y":240,"cMask":["ball"],"cGroup":["all"],"color":"7DB583"},{"x":0,"y":-240,"cMask":["ball"],"cGroup":["all"],"color":"7DB583"},{"x":320,"y":240,"bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","vis":true,"color":"707070"},{"x":402,"y":240,"bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","vis":true,"color":"FFFFFF"},{"x":-617,"y":520,"bCoef":1,"cMask":["ball"],"cGroup":["all"],"trait":"ballArea","color":"ffffff","vis":true},{"x":617,"y":520,"bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","vis":false,"color":"ffffff"},{"x":-168,"y":242,"cMask":["wall"]},{"x":617,"y":281.6666564941406,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","color":"ffffff"},{"x":-212,"y":316,"trait":"goalNet","color":"FFFFFF"},{"x":-232,"y":336,"trait":"goalNet","color":"FFFFFF"},{"x":-232,"y":433,"trait":"goalNet","color":"FFFFFF"},{"x":-212,"y":453,"trait":"goalNet","color":"FFFFFF"},{"x":218,"y":311.0416666666667,"trait":"goalNet","color":"FFFFFF"},{"x":238,"y":331.31944444444446,"trait":"goalNet","color":"FFFFFF"},{"x":238,"y":429.66666666666663,"trait":"goalNet","color":"FFFFFF"},{"x":218,"y":449.94444444444446,"trait":"goalNet","color":"FFFFFF"},{"x":-204,"y":309,"bCoef":1,"cMask":["ball"],"trait":"goalPost","color":"FF0000"},{"x":-204,"y":265,"bCoef":1,"cMask":["ball"],"trait":"goalPost","color":"FF0000"},{"x":211,"y":265,"bCoef":1,"cMask":["ball"],"trait":"goalPost","color":"00FFE5"},{"x":211,"y":303,"bCoef":1,"cMask":["ball"],"trait":"goalPost","color":"00FFE5"},{"x":-204,"y":500,"bCoef":1,"cMask":["ball"],"trait":"goalPost","color":"FF0000"},{"x":-204,"y":459,"bCoef":1,"cMask":["ball"],"trait":"goalPost","color":"FF0000"},{"x":211,"y":459,"bCoef":1,"cMask":["ball"],"trait":"goalPost","color":"00FFE5"},{"x":211,"y":500,"bCoef":1,"cMask":["ball"],"trait":"goalPost","color":"00FFE5"},{"x":-204,"y":500,"bCoef":1,"cMask":["ball"],"trait":"goalPost","color":"00FFE5"},{"x":211,"y":500,"bCoef":1,"cMask":["ball"],"trait":"goalPost","color":"00FFE5"},{"x":0,"y":265,"bCoef":0.5,"cMask":["wall"],"trait":"goalPost"},{"x":0,"y":345,"bCoef":0.5,"cMask":["wall"],"trait":"goalPost","curve":-180},{"x":0,"y":421,"bCoef":0.5,"cMask":["wall"],"trait":"goalPost","curve":-180},{"x":0,"y":345,"bCoef":0.5,"cMask":["wall"],"trait":"goalPost","curve":180},{"x":0,"y":421,"bCoef":0.5,"cMask":["wall"],"trait":"goalPost","curve":180,"color":"00FFE5"},{"x":0,"y":500,"bCoef":0.5,"cMask":["wall"],"trait":"goalPost","color":"00FFE5"},{"x":267,"y":-514,"cMask":["ball"],"cGroup":["ball"]},{"x":639,"y":-515,"cMask":["ball"],"cGroup":["ball"]},{"x":520.8333333333334,"y":-544.1666666666667,"cMask":["wall"],"cGroup":["ball"]},{"x":530.8333333333334,"y":-553.1666666666667,"cMask":["wall"],"cGroup":["ball"]},{"x":530.8333333333334,"y":-521.1666666666667,"cMask":["wall"],"cGroup":["ball"]},{"x":541.6719420732134,"y":-547.1364913071593,"cMask":["wall"],"cGroup":["all"],"color":"ffffff"},{"x":541.6719420732134,"y":-527.8066422199563,"cMask":["wall"],"cGroup":["all"],"color":"ffffff"},{"x":557.0673981378706,"y":-527.8066422199563,"cMask":["wall"],"cGroup":["all"],"color":"ffffff"},{"x":557.0673981378706,"y":-547.1364913071593,"cMask":["wall"],"cGroup":["all"],"color":"ffffff"},{"x":541.6719420732134,"y":-547.4786138581295,"cMask":["wall"],"cGroup":["all"],"color":"ffffff","curve":149.93913895313347},{"x":557.0673981378706,"y":-547.4786138581295,"cMask":["wall"],"cGroup":["all"],"color":"ffffff","curve":149.93913895313347},{"x":564.6719420732134,"y":-547.1364913071593,"cMask":["wall"],"cGroup":["all"],"color":"ffffff"},{"x":564.6719420732134,"y":-527.8066422199563,"cMask":["wall"],"cGroup":["all"],"color":"ffffff"},{"x":580.0673981378706,"y":-527.8066422199563,"cMask":["wall"],"cGroup":["all"],"color":"ffffff"},{"x":580.0673981378706,"y":-547.1364913071593,"cMask":["wall"],"cGroup":["all"],"color":"ffffff"},{"x":564.6719420732134,"y":-547.4786138581295,"cMask":["wall"],"cGroup":["all"],"color":"ffffff","curve":149.93913895313347},{"x":580.0673981378706,"y":-547.4786138581295,"cMask":["wall"],"cGroup":["all"],"color":"ffffff","curve":149.93913895313347},{"x":593.3333333333334,"y":-553.1666666666667,"cMask":["wall"],"cGroup":["all"]},{"x":593.3333333333334,"y":-521.1666666666667,"cMask":["wall"],"cGroup":["all"]},{"x":594.3333333333334,"y":-537.6666666666667,"cMask":["wall"],"cGroup":["all"]},{"x":609.3333333333334,"y":-553.1666666666667,"cMask":["wall"],"cGroup":["all"]},{"x":608.3333333333334,"y":-521.1666666666667,"cMask":["wall"],"cGroup":["all"]},{"x":267,"y":-338,"cMask":["ball"],"cGroup":["ball"],"curve":0,"vis":false},{"x":639,"y":-338,"cMask":["ball"],"cGroup":["ball"]},{"x":566.83860873988,"y":-368.30315797382593,"cMask":["wall"],"cGroup":["all"],"color":"ffffff"},{"x":566.83860873988,"y":-348.973308886623,"cMask":["wall"],"cGroup":["all"],"color":"ffffff"},{"x":582.2340648045372,"y":-348.973308886623,"cMask":["wall"],"cGroup":["all"],"color":"ffffff"},{"x":582.2340648045372,"y":-368.30315797382593,"cMask":["wall"],"cGroup":["all"],"color":"ffffff"},{"x":566.83860873988,"y":-368.6452805247962,"cMask":["wall"],"cGroup":["all"],"color":"ffffff","curve":149.93913895313347},{"x":582.2340648045372,"y":-368.6452805247962,"cMask":["wall"],"cGroup":["all"],"color":"ffffff","curve":149.93913895313347},{"x":540,"y":-373.3567653276956,"cMask":["wall"],"cGroup":["all"]},{"x":557.8243481324877,"y":-373.3567653276956,"cMask":["wall"],"cGroup":["all"]},{"x":544.0637773079634,"y":-342.1661381254405,"cMask":["wall"],"cGroup":["all"]},{"x":-339,"y":-240,"bCoef":1.6,"cMask":["all"],"cGroup":["all"],"trait":"line","color":"FFFFFF","vis":true},{"x":339,"y":-240,"bCoef":1.6,"cMask":["all"],"cGroup":["all"],"trait":"line","color":"FFFFFF","vis":true},{"x":339,"y":-240,"bCoef":1,"cMask":["all"],"trait":"ballArea","color":"707070","vis":true},{"x":401,"y":-240,"bCoef":1,"cMask":["all"],"trait":"ballArea","vis":true,"color":"707070"},{"x":267,"y":-720,"cMask":["all"],"cGroup":["all"]},{"x":267,"y":-338,"cMask":["all"],"cGroup":["all"]},{"x":-566,"y":-80,"bCoef":1,"cMask":["wall"],"cGroup":["all"]},{"x":-566,"y":69.99,"bCoef":1,"cMask":["wall"],"cGroup":["all"]},{"x":-566,"y":69.99,"bCoef":1,"cMask":["wall"],"cGroup":["all"]},{"x":-536,"y":69.99,"bCoef":1,"cMask":["wall"],"cGroup":["all"]},{"x":-566,"y":-80,"bCoef":1,"cMask":["wall"],"cGroup":["all"]},{"x":-566,"y":69.99,"bCoef":1,"cMask":["wall"],"cGroup":["all"]},{"x":-536,"y":-80,"bCoef":1,"cMask":["wall"],"cGroup":["all"]},{"x":-566,"y":-80,"bCoef":1,"cMask":["wall"],"cGroup":["all"]},{"x":-536,"y":-80,"bCoef":1,"cMask":["wall"],"cGroup":["all"]},{"x":-536,"y":69.99,"bCoef":1,"cMask":["wall"],"cGroup":["all"]},{"x":-423,"y":-240,"bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","vis":true,"color":"FFFFFF"},{"x":-550,"y":-240,"bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","vis":true,"color":"FFFFFF"},{"x":-550,"y":-240,"bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","color":"FFFFFF","vis":true},{"x":-550,"y":-91,"bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","color":"FFFFFF","vis":true},{"x":-423,"y":-266.3333435058594,"bCoef":0.2,"cMask":["ball"],"vis":true,"color":"BDBDBD"},{"x":-423,"y":-149,"bCoef":0,"cMask":["ball"],"color":"BDBDBD"},{"x":-403,"y":-266.3333435058594,"bCoef":0,"cMask":["ball"],"curve":90,"vis":true,"color":"BDBDBD"},{"x":-403,"y":-149,"bCoef":0,"cMask":["ball"],"color":"BDBDBD"},{"x":-403,"y":-252.33334350585938,"bCoef":-2.2,"cMask":["ball"],"vis":true,"color":"EE00FF"},{"x":-423,"y":-252.33334350585938,"bCoef":-2.2,"cMask":["ball"],"vis":true,"color":"EE00FF"},{"x":-403,"y":-266.3333435058594,"bCoef":0,"cMask":["ball"],"curve":90,"vis":true,"color":"BDBDBD"},{"x":-423,"y":-286.3333435058594,"bCoef":0,"cMask":["ball"],"curve":90,"vis":true,"color":"BDBDBD"},{"x":-616,"y":-266.3333435058594,"bCoef":-2.7,"cMask":["ball"],"vis":true,"color":"BDBDBD"},{"x":-423,"y":-266.3333435058594,"bCoef":0.2,"cMask":["ball"],"vis":true,"color":"BDBDBD"},{"x":-616,"y":-286.3333435058594,"bCoef":-2.7,"cMask":["ball"],"curve":90,"vis":true,"color":"BDBDBD"},{"x":-423,"y":-286.3333435058594,"bCoef":0,"cMask":["ball"],"curve":90,"vis":true,"color":"BDBDBD"},{"x":-636,"y":-266.3333435058594,"cMask":["ball"],"curve":90,"vis":true,"color":"BDBDBD"},{"x":-616,"y":-286.3333435058594,"bCoef":-2.7,"cMask":["ball"],"curve":90,"vis":true,"color":"BDBDBD"},{"x":-616,"y":-266.3333435058594,"bCoef":-2.7,"cMask":["ball"],"vis":true,"color":"BDBDBD"},{"x":-617,"y":-123.33334350585938,"bCoef":-3,"cMask":["ball"],"color":"BDBDBD"},{"x":-636,"y":-266.3333435058594,"cMask":["ball"],"curve":90,"vis":true,"color":"BDBDBD"},{"x":-637,"y":-123.33334350585938,"bCoef":-3,"cMask":["ball"],"color":"BDBDBD"},{"x":-617,"y":222.66665649414062,"bCoef":-3.8,"cMask":["ball"],"vis":true,"color":"BDBDBD"},{"x":-617,"y":-123.33334350585938,"bCoef":-3,"cMask":["ball"],"color":"BDBDBD"},{"x":-637,"y":222.66665649414062,"bCoef":-3.8,"cMask":["ball"],"vis":true,"color":"BDBDBD"},{"x":-637,"y":-123.33334350585938,"bCoef":-3,"cMask":["ball"],"color":"BDBDBD"},{"x":-637,"y":261.6666564941406,"cMask":["ball"],"curve":-90,"vis":true,"color":"BDBDBD"},{"x":-617,"y":281.6666564941406,"bCoef":-2.7,"cMask":["ball"],"curve":-90,"vis":true,"color":"BDBDBD"},{"x":-637,"y":222.66665649414062,"bCoef":-3.8,"cMask":["ball"],"vis":true,"color":"BDBDBD"},{"x":-637,"y":261.6666564941406,"cMask":["ball"],"curve":-90,"vis":true,"color":"BDBDBD"},{"x":-617,"y":222.66665649414062,"bCoef":-3.8,"cMask":["ball"],"vis":true,"color":"BDBDBD"},{"x":-617,"y":261.6666564941406,"bCoef":-2.7,"cMask":["ball"],"vis":true,"color":"BDBDBD"},{"x":-617,"y":261.6666564941406,"bCoef":-2.7,"cMask":["ball"],"vis":true,"color":"BDBDBD"},{"x":-426,"y":261.6666564941406,"bCoef":0.2,"cMask":["ball"],"vis":true,"color":"BDBDBD"},{"x":-617,"y":281.6666564941406,"bCoef":-2.7,"cMask":["ball"],"curve":-90,"vis":true,"color":"BDBDBD"},{"x":-426,"y":281.6666564941406,"bCoef":-2.7,"cMask":["ball"],"curve":-90,"vis":true,"color":"BDBDBD"},{"x":-406,"y":261.6666564941406,"bCoef":0.2,"cMask":["ball"],"curve":-90,"vis":true,"color":"BDBDBD"},{"x":-426,"y":281.6666564941406,"bCoef":-2.7,"cMask":["ball"],"curve":-90,"vis":true,"color":"BDBDBD"},{"x":-426,"y":261.6666564941406,"bCoef":0.2,"cMask":["ball"],"vis":true,"color":"BDBDBD"},{"x":-440,"y":150,"bCoef":0,"cMask":["ball"],"color":"BDBDBD"},{"x":-406,"y":261.6666564941406,"bCoef":0.2,"cMask":["ball"],"curve":-90,"vis":true,"color":"BDBDBD"},{"x":-390,"y":150,"bCoef":0,"cMask":["ball"],"color":"BDBDBD"},{"x":-392,"y":159,"bCoef":-2.7,"cMask":["ball"],"color":"EE00FF"},{"x":-438,"y":159,"bCoef":-2.7,"cMask":["ball"],"color":"EE00FF"},{"x":-617,"y":222.66665649414062,"bCoef":-3.8,"cMask":["ball"],"vis":true,"color":"EE00FF"},{"x":-637,"y":222.66665649414062,"bCoef":-3.8,"cMask":["ball"],"vis":true,"color":"EE00FF"},{"x":-428,"y":240,"bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","vis":true,"color":"FFFFFF"},{"x":-550,"y":240,"bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","vis":true,"color":"FFFFFF"},{"x":-550,"y":240,"bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","color":"FFFFFF","vis":true},{"x":-550,"y":87,"bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","color":"FFFFFF","vis":true},{"x":-550,"y":-91},{"x":-600,"y":-91},{"x":-600,"y":87},{"x":-550,"y":87},{"x":-600,"y":87},{"x":-600,"y":-91},{"x":-550,"y":87,"cMask":["blue"]},{"x":-550,"y":-91,"cMask":["blue"]},{"x":600,"y":87,"color":"00FFE5"},{"x":600,"y":-91,"color":"00FFE5"},{"x":-339,"y":-240,"bCoef":1,"cMask":["all"],"trait":"ballArea","color":"707070","vis":true},{"x":-402,"y":-240,"bCoef":1,"cMask":["all"],"trait":"ballArea","vis":true,"color":"707070"},{"x":550,"y":-91,"color":"00FFE5"},{"x":600,"y":-91,"color":"00FFE5"},{"x":550,"y":87,"color":"00FFE5"},{"x":600,"y":87,"color":"00FFE5"},{"x":-168,"y":239.5,"bCoef":-2.4,"cMask":["wall"],"cGroup":["all"],"curve":-180,"vis":true},{"x":-168,"y":-23.5,"bCoef":-2.4,"cMask":["wall"],"cGroup":["all"],"curve":-180,"vis":true,"color":"C2001A"},{"x":-168,"y":6.3,"bCoef":-2.4,"cMask":["wall"],"cGroup":["all"],"curve":-180,"vis":true,"color":"C2001A"},{"x":-168,"y":-23.5,"bCoef":-2.4,"cMask":["wall"],"cGroup":["all"],"curve":-180,"vis":true,"color":"FF0000"},{"x":-168,"y":-240,"cMask":["wall"],"color":"FF0000"},{"x":-168,"y":240,"bCoef":-2.4,"cMask":["wall"],"cGroup":["all"],"curve":-180,"vis":true,"color":"FF0000"},{"x":-168,"y":6.5,"cMask":["wall"],"color":"FF0000"},{"x":168,"y":240,"bCoef":-2.4,"cMask":["wall"],"cGroup":["all"],"curve":-180,"vis":true,"color":"00FFE5"},{"x":168,"y":6.5,"cMask":["wall"],"color":"00FFE5"},{"x":168,"y":-23.5,"bCoef":-2.4,"cMask":["wall"],"cGroup":["all"],"curve":180,"vis":true,"color":"00B5A3"},{"x":168,"y":6.3,"bCoef":-2.4,"cMask":["wall"],"cGroup":["all"],"curve":180,"vis":true,"color":"00B5A3"},{"x":168,"y":-23.5,"bCoef":-2.4,"cMask":["wall"],"cGroup":["all"],"curve":-180,"vis":true,"color":"00FFE5"},{"x":168,"y":-240,"cMask":["wall"],"color":"00FFE5"},{"x":550,"y":87,"cMask":["red"],"color":"00FFE5"},{"x":550,"y":-91,"cMask":["red"],"color":"00FFE5"},{"x":-259,"y":240,"bCoef":1,"cMask":["all"],"trait":"ballArea","color":"707070","vis":true},{"x":-320,"y":240,"bCoef":1,"cMask":["all"],"trait":"ballArea","vis":true,"color":"707070"},{"x":-617,"y":520,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","color":"ffffff"},{"x":-617,"y":281.6666564941406,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","color":"ffffff"},{"x":-320,"y":240,"bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","vis":true,"color":"707070"},{"x":-402,"y":240,"bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","vis":true,"color":"FFFFFF"},{"x":-640,"y":-338,"curve":0,"vis":false},{"x":618.1719420732134,"y":-547.1364913071593,"cMask":["wall"],"cGroup":["all"],"color":"ffffff"},{"x":618.1719420732134,"y":-527.8066422199563,"cMask":["wall"],"cGroup":["all"],"color":"ffffff"},{"x":633.5673981378706,"y":-527.8066422199563,"cMask":["wall"],"cGroup":["all"],"color":"ffffff","curve":0},{"x":618.1719420732134,"y":-547.4786138581295,"cMask":["wall"],"cGroup":["all"],"color":"ffffff","curve":149.93913895313347},{"x":633.5673981378706,"y":-547.4786138581295,"cMask":["wall"],"cGroup":["all"],"color":"ffffff","curve":149.93913895313347},{"x":633.5673981378706,"y":-536.6666666666667,"cMask":["wall"],"cGroup":["all"],"curve":0},{"x":633.5673981378706,"y":-536.6666666666667,"cMask":["wall"],"cGroup":["all"]},{"x":623.3333333333334,"y":-536.6666666666667,"cMask":["wall"],"cGroup":["all"]},{"x":594,"y":-375.1666666666667,"cMask":["wall"],"cGroup":["all"]},{"x":594,"y":-343.1666666666667,"cMask":["wall"],"cGroup":["all"]},{"x":595,"y":-359.6666666666667,"cMask":["wall"],"cGroup":["all"]},{"x":610,"y":-375.1666666666667,"cMask":["wall"],"cGroup":["all"]},{"x":609,"y":-343.1666666666667,"cMask":["wall"],"cGroup":["all"]},{"x":618.83860873988,"y":-369.13649130715925,"cMask":["wall"],"cGroup":["all"],"color":"ffffff"},{"x":618.83860873988,"y":-349.8066422199563,"cMask":["wall"],"cGroup":["all"],"color":"ffffff"},{"x":634.2340648045372,"y":-349.8066422199563,"cMask":["wall"],"cGroup":["all"],"color":"ffffff","curve":0},{"x":618.83860873988,"y":-369.4786138581295,"cMask":["wall"],"cGroup":["all"],"color":"ffffff","curve":149.93913895313347},{"x":634.2340648045372,"y":-369.4786138581295,"cMask":["wall"],"cGroup":["all"],"color":"ffffff","curve":149.93913895313347},{"x":634.2340648045372,"y":-358.6666666666667,"cMask":["wall"],"cGroup":["all"],"curve":0},{"x":634.2340648045372,"y":-358.6666666666667,"cMask":["wall"],"cGroup":["all"]},{"x":624,"y":-358.6666666666667,"cMask":["wall"],"cGroup":["all"]},{"x":267,"y":-720,"cMask":["all"],"cGroup":["all"],"_selected":true,"_data":{"mirror":{}},"vis":false},{"x":639,"y":-721,"cMask":["all"],"cGroup":["all"],"_selected":true,"_data":{"mirror":{}},"vis":false}],"segments":[{"v0":3,"v1":4,"vis":true,"color":"BDBDBD","cMask":["ball"],"trait":"ballArea"},{"v0":5,"v1":2,"vis":true,"color":"BDBDBD","cMask":["ball"]},{"v0":6,"v1":8,"curve":-90,"vis":true,"color":"BDBDBD","cMask":["ball"],"trait":"ballArea"},{"v0":4,"v1":9,"curve":90,"vis":true,"color":"BDBDBD","cMask":["ball"]},{"v0":7,"v1":14,"curve":0,"vis":true,"color":"BDBDBD","cMask":["ball"],"trait":"ballArea"},{"v0":8,"v1":15,"curve":0,"vis":true,"color":"BDBDBD","cMask":["ball"]},{"v0":5,"v1":11,"curve":0,"vis":true,"color":"BDBDBD","cMask":["ball"]},{"v0":9,"v1":12,"curve":0,"vis":true,"color":"BDBDBD","cMask":["ball"]},{"v0":15,"v1":13,"curve":-90,"vis":true,"color":"BDBDBD","bCoef":0,"cMask":["ball"]},{"v0":12,"v1":10,"curve":90,"vis":true,"color":"BDBDBD","cMask":["ball"]},{"v0":17,"v1":3,"vis":true,"color":"BDBDBD","cMask":["ball"],"trait":"ballArea"},{"v0":16,"v1":2,"vis":true,"color":"BDBDBD","cMask":["ball"]},{"v0":16,"v1":7,"vis":true,"color":"BDBDBD","cMask":["ball"]},{"v0":17,"v1":6,"vis":true,"color":"BDBDBD","cMask":["ball"]},{"v0":3,"v1":2,"curve":0,"vis":true,"color":"EE00FF","bCoef":-3.8,"cMask":["ball"],"y":60},{"v0":10,"v1":20,"curve":0,"vis":true,"color":"BDBDBD","bCoef":1,"cMask":["ball"]},{"v0":21,"v1":11,"curve":0,"vis":true,"color":"BDBDBD","cMask":["ball"]},{"v0":13,"v1":19,"curve":0,"vis":true,"color":"BDBDBD","cMask":["ball"]},{"v0":14,"v1":18,"curve":0,"vis":true,"color":"BDBDBD","cMask":["ball"]},{"v0":22,"v1":23,"curve":0,"vis":true,"color":"EE00FF","bCoef":-2.7,"cMask":["ball"],"y":250},{"v0":24,"v1":25,"vis":true,"color":"FFFFFF","bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","y":240},{"v0":25,"v1":26,"vis":true,"color":"FFFFFF","bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea"},{"v0":27,"v1":28,"vis":true,"color":"FFFFFF","bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","y":-240},{"v0":28,"v1":29,"vis":true,"color":"FFFFFF","bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea"},{"v0":0,"v1":30,"vis":true,"color":"FFFFFF","bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea"},{"v0":32,"v1":31,"curve":0,"vis":true,"color":"EE00FF","bCoef":-2.2,"cMask":["ball"],"y":60},{"v0":33,"v1":34,"vis":false,"bCoef":1,"cMask":["wall"],"cGroup":["all"],"x":685},{"v0":35,"v1":36,"vis":false,"bCoef":1,"cMask":["wall"],"cGroup":["all"],"y":-70},{"v0":37,"v1":38,"vis":false,"bCoef":1,"cMask":["wall"],"cGroup":["all"],"x":715},{"v0":39,"v1":40,"vis":false,"bCoef":1,"cMask":["wall"],"cGroup":["all"],"y":81.99},{"v0":41,"v1":42,"vis":true,"color":"FFFFFF","cMask":["all"],"cGroup":["all"],"x":0},{"v0":45,"v1":46,"vis":true,"color":"FFFFFF","bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea"},{"v0":47,"v1":48,"vis":true,"color":"ffffff","bCoef":1,"cMask":["ball"],"cGroup":["all"],"trait":"ballArea"},{"v0":48,"v1":50,"vis":true,"color":"ffffff","cMask":["all"],"cGroup":["all"],"trait":"ballArea"},{"v0":51,"v1":52,"curve":-90,"color":"FFFFFF","trait":"goalNet"},{"v0":52,"v1":53,"color":"FFFFFF","trait":"goalNet"},{"v0":53,"v1":54,"curve":-90,"color":"FFFFFF","trait":"goalNet"},{"v0":55,"v1":56,"curve":90.79027408501243,"color":"FFFFFF","trait":"goalNet"},{"v0":56,"v1":57,"color":"FFFFFF","trait":"goalNet"},{"v0":57,"v1":58,"curve":89.209725914986,"color":"FFFFFF","trait":"goalNet"},{"v0":59,"v1":60,"vis":true,"color":"FF0000","bCoef":1,"cMask":["ball"],"trait":"goalPost"},{"v0":60,"v1":61,"vis":true,"color":"FF0000","bCoef":1,"cMask":["ball"],"trait":"goalPost"},{"v0":61,"v1":62,"vis":true,"color":"00FFE5","bCoef":1,"cMask":["ball"],"trait":"goalPost"},{"v0":63,"v1":64,"vis":true,"color":"FF0000","bCoef":1,"cMask":["ball"],"trait":"goalPost"},{"v0":65,"v1":66,"vis":true,"color":"00FFE5","bCoef":1,"cMask":["ball"],"trait":"goalPost"},{"v0":67,"v1":68,"vis":true,"color":"00FFE5","bCoef":1,"cMask":["ball"],"trait":"goalPost"},{"v0":69,"v1":70,"vis":true,"color":"FFCCCC","bCoef":0.5,"cMask":["wall"],"trait":"goalPost"},{"v0":70,"v1":71,"curve":-180,"vis":true,"color":"FFCCCC","bCoef":0.5,"cMask":["wall"],"trait":"goalPost"},{"v0":72,"v1":73,"curve":180,"vis":true,"color":"FFCCCC","bCoef":0.5,"cMask":["wall"],"trait":"goalPost"},{"v0":73,"v1":74,"vis":true,"color":"00FFE5","bCoef":0.5,"cMask":["wall"],"trait":"goalPost"},{"v0":30,"v1":45,"vis":true,"color":"707070","bCoef":0.5,"cMask":["ball"],"trait":"goalPost"},{"v0":75,"v1":76,"vis":true,"color":"FFFFFF","cMask":["ball"],"cGroup":["ball"]},{"v0":77,"v1":78,"vis":true,"color":"FFFFFF","cMask":["wall"],"cGroup":["ball"]},{"v0":78,"v1":79,"vis":true,"color":"FFFFFF","cMask":["wall"],"cGroup":["ball"]},{"v0":80,"v1":81,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":81,"v1":82,"curve":-149.93913895313347,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":82,"v1":83,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":84,"v1":85,"curve":149.93913895313347,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":86,"v1":87,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":87,"v1":88,"curve":-149.93913895313347,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":88,"v1":89,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":90,"v1":91,"curve":149.93913895313347,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":92,"v1":93,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":94,"v1":95,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":94,"v1":96,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":97,"v1":98,"vis":true,"color":"FFFFFF","cMask":["ball"],"cGroup":["ball"]},{"v0":99,"v1":100,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":100,"v1":101,"curve":-149.93913895313347,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":101,"v1":102,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":103,"v1":104,"curve":149.93913895313347,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":105,"v1":106,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":106,"v1":107,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":108,"v1":109,"vis":true,"color":"FFFFFF","bCoef":1.6,"cMask":["all"],"cGroup":["all"],"trait":"line"},{"v0":110,"v1":111,"vis":true,"color":"707070","bCoef":0.5,"cMask":["ball"],"trait":"goalPost"},{"v0":112,"v1":113,"curve":0,"vis":false,"cMask":["all"],"cGroup":["all"]},{"v0":114,"v1":115,"vis":false,"bCoef":1,"cMask":["wall"],"cGroup":["all"],"x":715},{"v0":116,"v1":117,"vis":false,"bCoef":1,"cMask":["wall"],"cGroup":["all"],"y":69.99},{"v0":118,"v1":119,"vis":false,"bCoef":1,"cMask":["wall"],"cGroup":["all"],"x":715},{"v0":120,"v1":121,"vis":false,"bCoef":1,"cMask":["wall"],"cGroup":["all"],"y":-70},{"v0":122,"v1":123,"vis":false,"bCoef":1,"cMask":["wall"],"cGroup":["all"],"x":685},{"v0":124,"v1":125,"vis":true,"color":"FFFFFF","bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","y":-240},{"v0":126,"v1":127,"vis":true,"color":"FFFFFF","bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea"},{"v0":128,"v1":129,"curve":0,"vis":true,"color":"BDBDBD","cMask":["ball"]},{"v0":130,"v1":131,"curve":0,"vis":true,"color":"BDBDBD","cMask":["ball"]},{"v0":133,"v1":132,"curve":0,"vis":true,"color":"EE00FF","bCoef":-2.2,"cMask":["ball"],"y":60},{"v0":135,"v1":134,"curve":90,"vis":true,"color":"BDBDBD","bCoef":0,"cMask":["ball"]},{"v0":136,"v1":137,"curve":0,"vis":true,"color":"BDBDBD","cMask":["ball"],"trait":"ballArea"},{"v0":138,"v1":139,"curve":0,"vis":true,"color":"BDBDBD","cMask":["ball"]},{"v0":140,"v1":141,"curve":90,"vis":true,"color":"BDBDBD","cMask":["ball"],"trait":"ballArea"},{"v0":143,"v1":142,"vis":true,"color":"BDBDBD","cMask":["ball"]},{"v0":145,"v1":144,"vis":true,"color":"BDBDBD","cMask":["ball"]},{"v0":147,"v1":146,"vis":true,"color":"BDBDBD","cMask":["ball"]},{"v0":149,"v1":148,"vis":true,"color":"BDBDBD","cMask":["ball"],"trait":"ballArea"},{"v0":150,"v1":151,"curve":-90,"vis":true,"color":"BDBDBD","cMask":["ball"]},{"v0":152,"v1":153,"vis":true,"color":"BDBDBD","cMask":["ball"],"trait":"ballArea"},{"v0":155,"v1":154,"vis":true,"color":"BDBDBD","cMask":["ball"]},{"v0":156,"v1":157,"curve":0,"vis":true,"color":"BDBDBD","cMask":["ball"]},{"v0":158,"v1":159,"curve":0,"vis":true,"color":"BDBDBD","cMask":["ball"]},{"v0":161,"v1":160,"curve":-90,"vis":true,"color":"BDBDBD","cMask":["ball"]},{"v0":163,"v1":162,"curve":0,"vis":true,"color":"BDBDBD","cMask":["ball"]},{"v0":164,"v1":165,"curve":0,"vis":true,"color":"BDBDBD","bCoef":1,"cMask":["ball"]},{"v0":166,"v1":167,"curve":0,"vis":true,"color":"EE00FF","bCoef":-2.7,"cMask":["ball"],"y":250},{"v0":169,"v1":168,"curve":0,"vis":true,"color":"EE00FF","bCoef":-3.8,"cMask":["ball"],"y":60},{"v0":170,"v1":171,"vis":true,"color":"FFFFFF","bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea","y":240},{"v0":172,"v1":173,"vis":true,"color":"FFFFFF","bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea"},{"v0":174,"v1":175,"vis":true,"color":"FF0000","y":-91},{"v0":176,"v1":177,"vis":true,"color":"FF0000","y":87},{"v0":178,"v1":179,"vis":true,"color":"FF0000"},{"v0":180,"v1":181,"vis":true,"color":"FF0000","cMask":["blue"]},{"v0":182,"v1":183,"vis":true,"color":"00FFE5"},{"v0":184,"v1":185,"vis":true,"color":"707070","bCoef":0.5,"cMask":["ball"],"trait":"goalPost"},{"v0":186,"v1":187,"vis":true,"color":"00FFE5"},{"v0":188,"v1":189,"vis":true,"color":"00FFE5","y":87},{"v0":191,"v1":192,"curve":-180,"vis":true,"color":"C2001A","bCoef":-2.4,"cMask":["ball"],"cGroup":["all"]},{"v0":193,"v1":194,"vis":true,"color":"FF0000","cMask":["wall"]},{"v0":195,"v1":196,"vis":true,"color":"FF0000","cMask":["wall"]},{"v0":197,"v1":198,"vis":true,"color":"00FFE5","cMask":["wall"],"x":168},{"v0":199,"v1":200,"curve":180,"vis":true,"color":"00B5A3","bCoef":-2.4,"cMask":["ball"],"cGroup":["all"],"x":168},{"v0":201,"v1":202,"vis":true,"color":"00FFE5","cMask":["wall"],"x":168},{"v0":203,"v1":204,"vis":true,"color":"00FFE5","cMask":["red"],"x":550},{"v0":205,"v1":206,"vis":true,"color":"707070","bCoef":0.5,"cMask":["ball"],"trait":"goalPost"},{"v0":207,"v1":208,"vis":true,"color":"ffffff","cMask":["all"],"cGroup":["all"],"trait":"ballArea"},{"v0":209,"v1":210,"vis":true,"color":"FFFFFF","bCoef":1,"cMask":["all"],"cGroup":["all"],"trait":"ballArea"},{"v0":211,"v1":97,"curve":0,"vis":false,"color":"FFFFFF"},{"v0":212,"v1":213,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":213,"v1":214,"curve":-149.93913895313347,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":215,"v1":216,"curve":149.93913895313347,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":214,"v1":217,"curve":0,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":218,"v1":219,"curve":0,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":220,"v1":221,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":222,"v1":223,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":222,"v1":224,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":225,"v1":226,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":226,"v1":227,"curve":-149.93913895313347,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":228,"v1":229,"curve":149.93913895313347,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":227,"v1":230,"curve":0,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":231,"v1":232,"curve":0,"vis":true,"color":"ffffff","cMask":["wall"],"cGroup":["all"]},{"v0":233,"v1":234,"vis":false,"color":"FFFFFF","cMask":["all"],"cGroup":["all"],"_selected":true,"_data":{"mirror":{},"arc":{"a":[267,-720],"b":[639,-721],"radius":null,"center":[null,null],"from":null,"to":null}}}],"goals":[],"joints":[{"d0":13,"d1":14,"strength":"rigid","color":"FFFFFF","length":null},{"d0":15,"d1":16,"strength":"rigid","color":"FFFFFF","length":null}],"discs":[{"radius":6,"pos":[550,87],"color":"00FFE5","trait":"goalPost"},{"radius":6,"pos":[550,-91],"color":"00FFE5","trait":"goalPost"},{"radius":15,"invMass":1e-30,"pos":[551,-8],"color":"5689E5","bCoef":1,"cMask":["all"],"cGroup":["wall"],"damping":1,"speed":[0,1.7]},{"radius":10,"pos":[240,-170],"cGroup":["ball","kick"]},{"radius":10,"pos":[240,-170],"cGroup":["ball","kick"]},{"radius":10,"pos":[240,-170],"cGroup":["ball","kick"]},{"radius":10,"pos":[240,-170],"cGroup":["ball","kick"]},{"radius":10,"pos":[240,-170],"cGroup":["ball","kick"]},{"radius":10,"pos":[240,-170],"cGroup":["ball","kick"]},{"radius":6,"pos":[-204,453],"color":"FFFFFF","bCoef":1,"trait":"goalPost"},{"radius":6,"pos":[-204,316],"color":"FFFFFF","bCoef":1,"trait":"goalPost"},{"radius":7,"pos":[0,384],"color":"DD00FF","bCoef":0.5,"cGroup":["ball","kick"]},{"radius":22,"invMass":0.6,"pos":[324,-539],"color":"000000","bCoef":0,"cMask":["all"],"cGroup":["kick","ball"],"gravity":[0,0.21]},{"radius":22,"invMass":0.6,"pos":[389,-539],"color":"000000","bCoef":0,"cMask":["all"],"cGroup":["kick","ball"],"gravity":[0,0.21]},{"radius":18,"invMass":0.6,"pos":[338,-362],"color":"000000","bCoef":0,"cMask":["all"],"cGroup":["kick","ball"],"gravity":[0,0.18]},{"radius":18,"invMass":0.6,"pos":[396,-362],"color":"000000","bCoef":0,"cMask":["all"],"cGroup":["kick","ball"],"gravity":[0,0.18]},{"radius":6,"pos":[211,312],"color":"FFFFFF","bCoef":1,"trait":"goalPost"},{"radius":6,"pos":[211,450],"color":"FFFFFF","bCoef":1,"trait":"goalPost"},{"radius":6,"pos":[-550,87],"color":"FF0000","trait":"goalPost"},{"radius":6,"pos":[-550,-91],"color":"FF0000","trait":"goalPost"},{"radius":15,"invMass":1e-30,"pos":[-551,-8],"color":"E56E56","bCoef":1,"cMask":["all"],"cGroup":["wall"],"damping":1,"speed":[0,1.7]},{"radius":10,"pos":[-240,-170],"cGroup":["ball","kick"]},{"radius":10,"pos":[-240,-170],"cGroup":["ball","kick"]},{"radius":10,"pos":[-240,-170],"cGroup":["ball","kick"]},{"radius":10,"pos":[-240,-170],"cGroup":["ball","kick"]},{"radius":10,"pos":[-240,-170],"cGroup":["ball","kick"]},{"radius":10,"pos":[-240,-170],"cGroup":["ball","kick"]},{"radius":10,"pos":[-240,170],"cGroup":["ball","kick"]},{"radius":10,"pos":[-240,170],"cGroup":["ball","kick"]},{"radius":10,"pos":[-240,170],"cGroup":["ball","kick"]},{"radius":10,"pos":[-240,170],"cGroup":["ball","kick"]},{"radius":10,"pos":[-240,170],"cGroup":["ball","kick"]},{"radius":10,"pos":[-240,170],"cGroup":["ball","kick"]},{"radius":10,"pos":[240,170],"cGroup":["ball","kick"]},{"radius":10,"pos":[240,170],"cGroup":["ball","kick"]},{"radius":10,"pos":[240,170],"cGroup":["ball","kick"]},{"radius":10,"pos":[240,170],"cGroup":["ball","kick"]},{"radius":10,"pos":[240,170],"cGroup":["ball","kick"]},{"radius":10,"pos":[240,170],"cGroup":["ball","kick"]}],"planes":[{"normal":[-1,0],"dist":-639,"bCoef":0.1,"_data":{"extremes":{"normal":[-1,0],"dist":-639,"canvas_rect":[-1009,-721,1009,520],"a":[639,-721],"b":[639,520]}}},{"normal":[0,-1],"dist":-520,"bCoef":1,"cMask":["all"],"trait":"ballArea","vis":true,"_data":{"extremes":{"normal":[0,-1],"dist":-520,"canvas_rect":[-1009,-721,1009,520],"a":[-1009,520],"b":[1009,520]}}},{"normal":[1,0],"dist":-639,"bCoef":0.1,"cMask":["red","blue"],"cGroup":["all"],"_data":{"extremes":{"normal":[1,0],"dist":-639,"canvas_rect":[-1009,-721,1009,520],"a":[-639,-721],"b":[-639,520]}}}],"traits":{"ballArea":{"vis":false,"bCoef":1,"cMask":["ball"]},"goalPost":{"radius":8,"invMass":0,"bCoef":0.5},"goalNet":{"vis":true,"bCoef":0.1,"cMask":["ball"]},"kickOffBarrier":{"vis":false,"bCoef":0.1,"cGroup":["redKO","blueKO"],"cMask":["red","blue"]},"line":{"vis":true}},"canBeStored":false,"ballPhysics":{"invMass":0,"radius":0.01,"cMask":["wall"],"cGroup":["all"]},"redSpawnPoints":[[-475,0],[-416,-74.5],[-416,74.5]],"blueSpawnPoints":[[416,-74.5],[416,74.5]]}`, MRS: `{"name":"MRS","width":900,"height":440,"spawnDistance":350,"bg":{"type":"hockey","width":700,"height":320,"kickOffRadius":180,"cornerRadius":0},"vertexes":[{"x":0,"y":560,"trait":"kickOffBarrier","color":"FFCCFF"},{"x":-1,"y":181,"trait":"kickOffBarrier","color":"FFCCFF"},{"x":-2,"y":-177,"trait":"kickOffBarrier","color":"FFCCFF"},{"x":0,"y":-660,"trait":"kickOffBarrier","color":"FFCCFF"},{"x":540,"y":9,"trait":"line"},{"x":539,"y":-1,"trait":"line"},{"x":-534,"y":11,"trait":"line"},{"x":-532,"y":0,"trait":"line"},{"x":-707,"y":98,"trait":"line","color":"00DBDB"},{"x":-767,"y":96,"trait":"line","color":"00DBDB"},{"x":-705,"y":-99,"trait":"line","color":"FFF62F","curve":0,"bCoef":1.5},{"x":-765,"y":-97,"trait":"line","color":"00DBDB","curve":0,"bCoef":1.5},{"x":702,"y":100,"trait":"line","color":"00DBDB"},{"x":762,"y":98,"trait":"line","color":"00DBDB"},{"x":698,"y":-99,"trait":"line","color":"00DBDB"},{"x":758,"y":-97,"trait":"line","color":"00DBDB"},{"x":0,"y":-4,"trait":"line"},{"x":0,"y":4,"trait":"line"},{"x":0,"y":-4,"trait":"line"},{"x":0,"y":4,"trait":"line"},{"x":-769,"y":98,"trait":"line","color":"FF3300"},{"x":-768,"y":-97,"trait":"line","color":"FF3300"},{"x":759,"y":95,"trait":"line","color":"003399"},{"x":760,"y":-98,"trait":"line","color":"003399"},{"bCoef":0.1,"cMask":["red","blue"],"trait":"kickOffBarrier","x":-7,"y":-436,"curve":0,"cGroup":["blueKO"]},{"bCoef":0.1,"cMask":["red","blue"],"trait":"kickOffBarrier","x":-6,"y":316,"curve":0,"cGroup":["blueKO"]},{"bCoef":0.1,"cMask":["red","blue"],"trait":"kickOffBarrier","x":6,"y":-436,"curve":0,"cGroup":["redKO"]},{"bCoef":0.1,"cMask":["red","blue"],"trait":"kickOffBarrier","x":6,"y":316,"curve":0,"cGroup":["redKO"]},{"bCoef":0.1,"cMask":["red","blue"],"trait":"kickOffBarrier","x":2,"y":-180,"curve":0,"cGroup":["redKO"],"vis":true,"color":"FFCCFF"},{"bCoef":0.1,"cMask":["red","blue"],"trait":"kickOffBarrier","x":0,"y":180,"curve":0,"cGroup":["redKO"],"vis":true,"color":"FFCCFF"},{"bCoef":-2.45,"cMask":["ball"],"trait":"line","x":-700.5,"y":281,"color":"FFFFFF"},{"bCoef":-2.45,"cMask":["ball"],"trait":"line","x":-653.5,"y":318,"color":"FFFFFF"},{"bCoef":-2.45,"cMask":["ball"],"trait":"line","x":700.5,"y":281,"color":"FFFFFF"},{"bCoef":-2.45,"cMask":["ball"],"trait":"line","x":653.5,"y":318,"color":"FFFFFF"},{"bCoef":-2.45,"cMask":["ball"],"trait":"line","x":-700.5,"y":-281,"curve":100,"color":"FFFFFF"},{"bCoef":0,"cMask":["wall"],"trait":"line","x":-653.5,"y":-318,"color":"FFFFFF"},{"bCoef":-2.45,"cMask":["ball"],"trait":"line","x":700.5,"y":-281,"curve":-100,"color":"FFFFFF"},{"bCoef":-2.45,"cMask":["ball"],"trait":"line","x":653.5,"y":-318,"curve":-100,"color":"FFFFFF"},{"trait":"line","x":-701,"y":248},{"trait":"line","x":703,"y":252},{"trait":"line","x":-700,"y":-249},{"trait":"line","x":-699,"y":-107},{"trait":"line","x":701,"y":-104},{"trait":"line","x":-701,"y":106},{"cMask":["ball"],"trait":"line","x":-707,"y":-102,"curve":30},{"cMask":["ball"],"trait":"line","x":-707,"y":102,"curve":-30},{"bCoef":2.5,"trait":"goalPost","x":-699,"y":-100},{"bCoef":2.5,"trait":"goalPost","x":699,"y":-100},{"bCoef":2.5,"trait":"goalPost","x":-699,"y":100},{"bCoef":2.5,"trait":"goalPost","x":699,"y":100},{"bCoef":2.5,"trait":"goalPost","x":-699,"y":-100,"curve":-60,"color":"003399"},{"bCoef":2.5,"trait":"goalPost","x":699,"y":-100,"curve":60,"color":"cc3300"},{"bCoef":2.5,"trait":"goalPost","x":-699,"y":100,"curve":60,"color":"003399"},{"bCoef":2.5,"trait":"goalPost","x":699,"y":100,"curve":-60,"color":"cc3300"},{"bCoef":2.5,"trait":"goalPost","x":-697,"y":-100},{"bCoef":2.5,"trait":"goalPost","x":697,"y":-100},{"bCoef":2.5,"trait":"goalPost","x":-697,"y":100},{"bCoef":2.5,"trait":"goalPost","x":697,"y":100},{"trait":"line","x":700,"y":112.75,"color":"00DBDB"},{"trait":"line","x":-701,"y":173.75,"color":"00DBDB"},{"trait":"line","x":-518,"y":173.75,"color":"00DBDB"},{"trait":"line","x":700,"y":174.75,"color":"00DBDB"},{"trait":"line","x":518,"y":173.75,"color":"00DBDB"},{"trait":"line","x":-701,"y":-173.75,"color":"00DBDB"},{"trait":"line","x":-518,"y":-173.75,"color":"00DBDB"},{"trait":"line","x":701,"y":-173.75,"color":"00DBDB"},{"trait":"line","x":518,"y":-173.75,"color":"00DBDB"},{"trait":"line","x":-701,"y":112.75,"color":"00DBDB"},{"trait":"line","x":-623,"y":112.75,"color":"00DBDB"},{"trait":"line","x":624,"y":112.75,"color":"00DBDB"},{"trait":"line","x":-701,"y":-112.75,"color":"00DBDB"},{"trait":"line","x":-623,"y":-112.75,"color":"00DBDB"},{"trait":"line","x":701,"y":-112.75,"color":"00DBDB"},{"trait":"line","x":623,"y":-112.75,"color":"00DBDB"},{"trait":"line","x":-700.25,"y":166.75,"color":"101010"},{"trait":"line","x":-700.25,"y":-166.75},{"trait":"line","x":-702.25,"y":-151.75},{"trait":"line","x":-697.25,"y":-161.75},{"trait":"line","x":-507.25,"y":191.75,"color":"C38173"},{"trait":"line","x":-507.25,"y":97.75,"color":"C38173"},{"trait":"line","x":507.25,"y":191.75,"color":"C38173"},{"trait":"line","x":507.25,"y":92.75,"color":"C38173"},{"trait":"line","x":-507.25,"y":-191.75,"color":"C38173"},{"trait":"line","x":-508.25,"y":-94.75,"color":"C38173"},{"trait":"line","x":518.25,"y":-93.75,"color":"C38173"},{"bCoef":-3,"trait":"line","x":-717,"y":111,"cMask":["ball"],"curve":40,"color":"ffffff"},{"bCoef":-3,"trait":"line","x":-718,"y":187,"cMask":["ball"],"curve":40,"color":"ffffff"},{"bCoef":-3,"trait":"line","x":-721,"y":-191,"cMask":["ball"],"curve":40,"color":"ffffff"},{"bCoef":-3,"trait":"line","x":-720,"y":-116,"cMask":["ball"],"curve":40,"color":"ffffff"},{"bCoef":-3,"trait":"line","x":716,"y":-193,"cMask":["ball"],"curve":-30,"color":"ffffff"},{"bCoef":-3,"trait":"line","x":713,"y":-113,"cMask":["ball"],"curve":-30,"color":"ffffff"},{"bCoef":-3,"trait":"line","x":716,"y":109,"cMask":["ball"],"curve":-30,"color":"ffffff"},{"bCoef":-3,"trait":"line","x":715,"y":187,"cMask":["ball"],"curve":-30,"color":"ffffff"},{"bCoef":0.1,"cMask":["red","blue"],"trait":"kickOffBarrier","x":-1,"y":-180,"curve":0,"cGroup":["blueKO"],"vis":true,"color":"FFCCFF"},{"bCoef":0.1,"cMask":["red","blue"],"trait":"kickOffBarrier","x":0,"y":180,"curve":0,"cGroup":["blueKO"],"vis":true,"color":"FFCCFF"},{"trait":"line","x":-515.5,"y":-91.25,"curve":180,"color":"00DBDB"},{"trait":"line","x":-515.5,"y":95.75,"curve":180,"color":"00DBDB"},{"trait":"line","x":519.5,"y":-93.25,"color":"00DBDB"},{"trait":"line","x":519.5,"y":93.75,"color":"00DBDB"},{"trait":"line","x":518.5,"y":-93.25,"curve":-180.808346662,"color":"00DBDB"},{"trait":"line","x":517.5,"y":90.75,"curve":-180.808346662,"color":"00DBDB"},{"trait":"line","x":-700.25,"y":202.75,"color":"C38150"},{"trait":"line","x":-546.25,"y":320.75,"color":"C38150"},{"trait":"line","x":-699.347495384,"y":-203.75700879,"curve":-75,"color":"C38150"},{"trait":"line","x":-541.517823356,"y":-316.583400329,"curve":-75,"color":"C38150"},{"trait":"line","x":544.652504616,"y":317.24299121,"curve":75,"color":"C38150"},{"trait":"line","x":702.482176644,"y":204.416599671,"curve":75,"color":"C38150"},{"trait":"line","x":1.75,"y":428,"color":"000000"},{"bCoef":-2.45,"cMask":["ball"],"trait":"line","x":-653,"y":-323,"curve":100},{"bCoef":-2.85,"trait":"line","x":702,"y":281,"cMask":["ball"],"curve":-30,"color":"ffffff"},{"bCoef":-2.85,"trait":"line","x":652,"y":323,"cMask":["ball"],"curve":-30,"color":"ffffff"},{"bCoef":-2.85,"trait":"line","x":-653,"y":321,"cMask":["ball"],"curve":-30,"color":"ffffff"},{"bCoef":-2.85,"trait":"line","x":-701,"y":281,"cMask":["ball"],"curve":-30,"color":"ffffff"},{"bCoef":-2.85,"trait":"line","x":-652,"y":-323,"cMask":["ball"],"curve":-30,"color":"ffffff"},{"bCoef":-2.85,"trait":"line","x":-700,"y":-282,"cMask":["ball"],"curve":-30,"color":"ffffff"},{"bCoef":-2.85,"trait":"line","x":700,"y":-282,"cMask":["ball"],"curve":-30,"color":"ffffff"},{"bCoef":-2.85,"trait":"line","x":654,"y":-319,"cMask":["ball"],"curve":-30,"color":"ffffff"},{"x":-651,"y":-321,"curve":0,"color":"ffffff","bCoef":1.5,"trait":"ballArea"},{"x":651,"y":-320,"curve":0,"color":"00DBDB","bCoef":1.5,"trait":"ballArea"},{"x":-705,"y":-99,"trait":"line","color":"00DBDB","curve":0,"bCoef":1.5},{"x":-765,"y":-97,"trait":"line","color":"00DBDB","curve":0,"bCoef":1.5},{"x":-650,"y":320,"curve":0,"color":"ffffff","bCoef":1.5,"trait":"ballArea"},{"x":652,"y":321,"curve":0,"color":"ffffff","bCoef":1.5,"trait":"ballArea"},{"bCoef":1.5,"x":-651,"y":319},{"cMask":["ball"],"x":-644,"y":-441},{"cMask":["ball"],"x":-638,"y":-405},{"cMask":["ball"],"x":644,"y":441},{"cMask":["ball"],"x":638,"y":405},{"cMask":["ball"],"x":-644,"y":441},{"cMask":["ball"],"x":-638,"y":405},{"cMask":["ball"],"x":651,"y":-440},{"cMask":["ball"],"x":-651,"y":-440},{"cMask":["ball"],"x":651,"y":440},{"cMask":["ball"],"x":-651,"y":440},{"bCoef":0.1,"cMask":["red","blue"],"cGroup":["redKO","blueKO"],"trait":"kickOffBarrier","x":-1,"y":-320,"vis":true},{"bCoef":0.1,"cMask":["red","blue"],"cGroup":["blueKO"],"trait":"kickOffBarrier","x":0,"y":318,"vis":true}],"segments":[{"v0":9,"v1":11,"trait":"reargoalNetleft","color":"00DBDB","x":-1210},{"v0":13,"v1":15,"trait":"reargoalNetright","color":"00DBDB"},{"v0":0,"v1":1,"trait":"kickOffBarrier","color":"FFCCFF"},{"v0":2,"v1":3,"trait":"kickOffBarrier","color":"FFCCFF"},{"v0":4,"v1":5,"trait":"line","curve":-143.792473931,"x":935},{"v0":6,"v1":7,"trait":"line","curve":-180,"x":-935},{"v0":4,"v1":5,"trait":"line","curve":11.6209776323,"x":935},{"v0":6,"v1":7,"trait":"line","curve":180,"x":-935},{"v0":4,"v1":5,"trait":"line","curve":90,"x":935},{"v0":6,"v1":7,"trait":"line","curve":90,"x":-935},{"v0":4,"v1":5,"trait":"line","curve":-32.7887893488,"x":935},{"v0":6,"v1":7,"trait":"line","curve":-90,"x":-935},{"v0":4,"v1":5,"trait":"line","x":935,"curve":157.380135052},{"v0":6,"v1":7,"trait":"line","x":-935},{"v0":8,"v1":9,"trait":"sidegoalNet","curve":5,"color":"00DBDB"},{"v0":10,"v1":11,"trait":"sidegoalNet","curve":0,"color":"FFF62F","bCoef":1.5},{"v0":12,"v1":13,"trait":"sidegoalNet","curve":-5,"color":"00DBDB"},{"v0":14,"v1":15,"trait":"sidegoalNet","curve":5,"color":"00DBDB"},{"v0":16,"v1":17,"trait":"line","curve":-180},{"v0":18,"v1":19,"trait":"line","curve":180},{"v0":16,"v1":17,"trait":"line","curve":-90},{"v0":18,"v1":19,"trait":"line","curve":90},{"curve":0,"vis":false,"bCoef":0.1,"cMask":["red","blue"],"trait":"kickOffBarrier","v0":24,"v1":25,"x":-10,"cGroup":["blueKO"]},{"curve":0,"vis":false,"bCoef":0.1,"cMask":["red","blue"],"trait":"kickOffBarrier","v0":26,"v1":27,"x":10,"cGroup":["redKO"]},{"curve":179.406646427,"vis":true,"bCoef":0.1,"cMask":["red","blue"],"trait":"kickOffBarrier","v0":28,"v1":29,"x":200,"cGroup":["redKO"],"color":"FFCCFF"},{"curve":90,"vis":true,"color":"FFFFFF","bCoef":0,"cMask":["wall"],"trait":"line","v0":30,"v1":31},{"curve":-90,"vis":true,"color":"FFFFFF","bCoef":0,"cMask":["wall"],"trait":"line","v0":32,"v1":33},{"curve":-90,"vis":true,"color":"FFFFFF","bCoef":0,"cMask":["wall"],"trait":"line","v0":34,"v1":35},{"curve":90,"vis":true,"color":"FFFFFF","bCoef":0,"cMask":["wall"],"trait":"line","v0":36,"v1":37},{"vis":true,"color":"00DBDB","trait":"line","v0":59,"v1":60},{"vis":true,"color":"00DBDB","trait":"line","v0":61,"v1":62},{"vis":true,"color":"00DBDB","trait":"line","v0":63,"v1":64},{"vis":true,"color":"00DBDB","trait":"line","v0":65,"v1":66},{"vis":true,"color":"00DBDB","trait":"line","v0":60,"v1":64},{"vis":true,"color":"00DBDB","trait":"line","v0":62,"v1":66},{"vis":true,"color":"00DBDB","trait":"line","v0":67,"v1":68},{"vis":true,"color":"00DBDB","trait":"line","v0":58,"v1":69},{"vis":true,"color":"00DBDB","trait":"line","v0":70,"v1":71},{"vis":true,"color":"00DBDB","trait":"line","v0":72,"v1":73},{"vis":true,"color":"00DBDB","trait":"line","v0":68,"v1":71},{"vis":true,"color":"00DBDB","trait":"line","v0":69,"v1":73},{"curve":40,"vis":true,"bCoef":-3,"trait":"line","v0":85,"v1":86,"cMask":["ball"],"color":"ffffff"},{"curve":40,"vis":true,"bCoef":-3,"trait":"line","v0":87,"v1":88,"cMask":["ball"],"color":"ffffff"},{"curve":-30,"vis":true,"bCoef":-3,"trait":"line","v0":89,"v1":90,"cMask":["ball"],"color":"ffffff"},{"curve":-30,"vis":true,"bCoef":-3,"trait":"line","v0":91,"v1":92,"cMask":["ball"],"color":"ffffff"},{"curve":-179.191823306,"vis":true,"bCoef":0.1,"cMask":["red","blue"],"trait":"kickOffBarrier","v0":93,"v1":94,"x":200,"cGroup":["blueKO"],"color":"FFCCFF"},{"vis":true,"color":"00DBDB","trait":"line","v0":95,"v1":96,"curve":180},{"vis":true,"color":"00DBDB","trait":"line","v0":97,"v1":98},{"vis":true,"color":"00DBDB","trait":"line","v0":99,"v1":100,"curve":-180.808346662},{"curve":-95.7468769952,"vis":true,"bCoef":-2.85,"trait":"line","v0":109,"v1":110,"cMask":["ball"],"color":"ffffff"},{"curve":-86.181695134,"vis":true,"bCoef":-2.85,"trait":"line","v0":111,"v1":112,"cMask":["ball"],"color":"ffffff"},{"curve":102.517211156,"vis":true,"bCoef":-2.85,"trait":"line","v0":113,"v1":114,"cMask":["ball"],"color":"ffffff"},{"curve":102.517211156,"vis":true,"bCoef":-2.85,"trait":"line","v0":115,"v1":116,"cMask":["ball"],"color":"ffffff"},{"curve":0,"vis":true,"color":"00DBDB","v0":117,"v1":118,"bCoef":1.5,"trait":"ballArea"},{"v0":119,"v1":120,"trait":"sidegoalNet","curve":0,"color":"00DBDB","bCoef":1.5},{"curve":0,"vis":true,"color":"00DBDB","v0":121,"v1":122,"bCoef":1.5,"trait":"ballArea"},{"curve":0,"vis":true,"color":"FFF62F","bCoef":1.5,"v0":123,"v1":121},{"vis":false,"color":"ffffff","cMask":["ball"],"v0":118,"v1":130},{"vis":false,"color":"ffffff","cMask":["ball"],"v0":117,"v1":131},{"vis":false,"color":"ffffff","cMask":["ball"],"v0":122,"v1":132},{"vis":false,"color":"ffffff","cMask":["ball"],"v0":123,"v1":133},{"vis":true,"color":"FFCCFF","bCoef":0.1,"cMask":["red","blue"],"cGroup":["redKO","blueKO"],"trait":"kickOffBarrier","v0":134,"v1":93},{"vis":true,"color":"FFCCFF","bCoef":0.1,"cMask":["red","blue"],"cGroup":["blueKO"],"trait":"kickOffBarrier","v0":94,"v1":135}],"goals":[{"team":"red","p0":[-700,-97],"p1":[-700,101]},{"team":"blue","p0":[700,-97],"p1":[700,101]}],"discs":[{"pos":[-701,99],"trait":"goalPost","bCoef":2,"radius":5,"color":"000000"},{"pos":[-700.062380731,-100.449671008],"trait":"goalPost","bCoef":2,"radius":5,"color":"000000"},{"pos":[699,102],"trait":"goalPost","bCoef":2,"radius":5,"color":"000000"},{"pos":[700,-98],"trait":"goalPost","bCoef":2,"radius":5,"color":"000000"}],"planes":[{"normal":[0,1],"dist":-350,"trait":"ballArea","bCoef":0},{"normal":[0,-1],"dist":-347,"trait":"ballArea","bCoef":0},{"normal":[0,1],"dist":-399,"bCoef":0},{"normal":[0,-1],"dist":-393,"bCoef":0},{"normal":[1,0],"dist":-1300,"bCoef":0},{"normal":[-1,0],"dist":-1300,"bCoef":0.1},{"normal":[-1,0],"dist":-763,"bCoef":0,"cMask":["ball"]},{"normal":[1,0],"dist":-770,"trait":"ballArea","bCoef":0},{"normal":[0,-1],"dist":-392,"bCoef":0},{"normal":[1,0],"dist":-828,"bCoef":0}],"traits":{"ballArea":{"vis":false,"bCoef":0,"cMask":["ball"]},"goalPost":{"radius":5,"invMass":0,"bCoef":2},"stanchion":{"radius":3,"invMass":0,"bCoef":3,"cMask":["none"]},"cornerflag":{"radius":3,"invMass":0,"bCoef":0.5,"color":"FFFF00","cGroup":[]},"reargoalNetleft":{"vis":true,"bCoef":0.1,"cMask":["ball","red","blue"],"curve":10,"color":"C7E6BD"},"reargoalNetright":{"vis":true,"bCoef":0.1,"cMask":["ball","red","blue"],"curve":-10,"color":"C7E6BD"},"sidegoalNet":{"vis":true,"bCoef":1,"cMask":["ball","red","blue"],"color":"C7E6BD"},"kickOffBarrier":{"vis":false,"bCoef":0.1,"cGroup":["redKO","blueKO"],"cMask":["red","blue"]},"line":{"vis":true,"cMask":[],"color":"C7E6BD"},"tunnel":{"vis":true,"cMask":["red","blue"],"color":"000000"},"advertising":{"vis":true,"cMask":["red","blue"],"color":"333333"},"teambench":{"vis":true,"cMask":[],"color":"000000"},"manager":{"radius":15,"vis":true,"cMask":["red","blue"],"invMass":0,"color":"333333"},"physio":{"radius":15,"vis":true,"cMask":["red","blue"],"invMass":0,"color":"666666"},"redsubs":{"radius":15,"vis":true,"cMask":["red","blue"],"invMass":0,"color":"E56E56"},"bluesubs":{"radius":15,"vis":true,"cMask":["red","blue"],"invMass":0,"color":"5689E5"}},"ballPhysics":{"radius":10,"bCoef":0.5,"invMass":1,"damping":0.99,"color":"BBFF00","cMask":["all"],"cGroup":["ball"]},"playerPhysics":{"bCoef":0.5,"invMass":0.5,"damping":0.96,"acceleration":0.12,"kickingAcceleration":0.07,"kickingDamping":0.96,"kickStrength":5.65}}`, Penalty: `{"name":"HCL | ᴘᴇɴᴀʟᴛʏ","width":630,"height":500,"spawnDistance":200,"bg":{"type":"","width":200,"height":340,"kickOffRadius":0,"cornerRadius":0,"color":"212121"},"vertexes":[{"x":200,"y":-280,"bCoef":0,"cMask":["blue"],"trait":"line","curve":-90,"vis":true},{"x":0,"y":-100,"trait":"line","curve":0},{"x":200,"y":280,"trait":"line","curve":90},{"x":0,"y":100,"trait":"line","curve":0},{"x":170,"y":-340,"bCoef":0,"trait":"line","curve":-90},{"x":200,"y":-310,"bCoef":0,"trait":"line","curve":-90},{"x":170,"y":340,"bCoef":0,"trait":"line","curve":90},{"x":200,"y":310,"bCoef":0,"trait":"line","curve":90},{"x":190,"y":-100,"bCoef":0,"cMask":["blue"],"trait":"line","p0":[210,100],"p1":[210,-100],"curve":-45},{"x":190,"y":100,"bCoef":0,"cMask":["blue"],"trait":"line","p0":[210,100],"p1":[210,-100],"curve":-45},{"x":0,"y":-340,"bCoef":-0.1,"cMask":["red"],"trait":"line","curve":20,"vis":false,"color":"000000"},{"x":0,"y":340,"bCoef":-0.1,"cMask":["red"],"trait":"line","curve":20,"vis":false,"color":"000000"},{"x":0,"y":-2.8,"bCoef":0,"trait":"line"},{"x":0,"y":0.8,"bCoef":0,"trait":"line"},{"x":0,"y":-2.8,"bCoef":0,"trait":"line","curve":90},{"x":0,"y":0.8,"bCoef":0,"trait":"line","curve":90},{"x":0,"y":-2.8,"bCoef":0,"trait":"line","curve":-90},{"x":0,"y":0.8,"bCoef":0,"trait":"line","curve":-90},{"x":0,"y":-2.8,"bCoef":0,"trait":"line","curve":-180},{"x":0,"y":0.8,"bCoef":0,"trait":"line","curve":-180},{"x":0,"y":-2.8,"bCoef":0,"trait":"line","curve":180},{"x":0,"y":0.8,"bCoef":0,"trait":"line","curve":180},{"x":0,"y":-340,"bCoef":0,"cMask":["blue"],"trait":"line","color":"888888","curve":0},{"x":0,"y":-100,"bCoef":0,"cMask":["blue"],"trait":"line","color":"888888","curve":0},{"x":-222.5,"y":-340,"cMask":["red","blue"],"trait":"line","curve":0},{"x":200,"y":-340,"cMask":["red","blue"],"trait":"line","curve":0},{"x":-222,"y":340.5,"trait":"line","curve":0},{"x":200,"y":340,"trait":"line","curve":0},{"x":-222.5,"y":340.5,"trait":"line","curve":0},{"x":200,"y":-340,"trait":"line","curve":0},{"x":200,"y":340,"trait":"line","curve":0},{"x":0,"y":102,"bCoef":0,"cMask":["blue"],"trait":"line","color":"888888","curve":0},{"x":0,"y":340,"bCoef":0,"cMask":["blue"],"trait":"line","color":"888888","curve":0},{"x":200,"y":-100.533340454,"bCoef":0.1,"cMask":["ball"],"trait":"goalNet"},{"x":200,"y":100,"bCoef":0.1,"cMask":["ball"],"trait":"goalNet"},{"x":-222.5,"y":340.5,"cMask":["red","blue"],"trait":"line","curve":0},{"x":200,"y":340.5,"cMask":["red","blue"],"trait":"line","curve":0},{"x":-221.5,"y":-339.5,"trait":"line","curve":0},{"x":-221.5,"y":340.5,"trait":"line","curve":0},{"x":252.75517390722294,"y":-236.79949577748386,"bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","vis":true,"color":"825300","_data":{"mirror":{}}},{"x":206.25445651016597,"y":-237.22760973314683,"bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","vis":true,"color":"825300","_data":{"mirror":{}}},{"x":252.7930490351421,"y":-212.29952505352816,"bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","vis":true,"color":"825300","_data":{"mirror":{}}},{"x":206.292331638085,"y":-212.72763900919108,"bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","vis":true,"color":"825300","_data":{"mirror":{}}},{"x":230.25365486979763,"y":-237.7647113018013,"bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","color":"825300","vis":true,"_data":{"mirror":{}}},{"x":230.2915299977167,"y":-213.26474057784563,"bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","color":"825300","vis":true,"_data":{"mirror":{}}},{"x":251.3479716620983,"y":-176.78965763938044,"bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","vis":true,"color":"825300","curve":-200,"_data":{"mirror":{}}},{"x":207.84721013306708,"y":-177.23000031496466,"bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","vis":true,"color":"825300","curve":-200,"_data":{"mirror":{}}},{"x":254.04124440858723,"y":-241.9781292736625,"bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":207.54052701153017,"y":-242.4062432293254,"bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":254.07911953650628,"y":-217.4781585497068,"bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":207.5784021394492,"y":-217.9062725053697,"bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":231.53972537116184,"y":-242.94334479797993,"bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","color":"FF9100","vis":true,"_data":{"mirror":{}}},{"x":231.57760049908092,"y":-218.4433740740243,"bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","color":"FF9100","vis":true,"_data":{"mirror":{}}},{"x":252.63404216346254,"y":-181.96829113555907,"bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","vis":true,"color":"FF9100","curve":-200,"_data":{"mirror":{}}},{"x":209.1332806344313,"y":-182.4086338111433,"bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","vis":true,"color":"FF9100","curve":-200,"_data":{"mirror":{}}},{"x":254.06560940257182,"y":-239.31157391924376,"bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":207.56489200551474,"y":-239.73968787490656,"bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":254.10348453049087,"y":-214.81160319528806,"bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":207.6027671334338,"y":-215.23971715095098,"bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":231.56409036514637,"y":-240.2767894435612,"bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","color":"FF9100","vis":true,"_data":{"mirror":{}}},{"x":231.6019654930655,"y":-215.77681871960544,"bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","color":"FF9100","vis":true,"_data":{"mirror":{}}},{"x":252.6584071574471,"y":-179.30173578114034,"bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","vis":true,"color":"FF9100","curve":-200,"_data":{"mirror":{}}},{"x":209.1576456284159,"y":-179.74207845672456,"bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","vis":true,"color":"FF9100","curve":-200,"_data":{"mirror":{}}},{"x":253.15365069241753,"y":212.9191717351602,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"825300","_data":{"mirror":{}}},{"x":206.6510671614761,"y":212.82055658513747,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"825300","_data":{"mirror":{}}},{"x":253.36512321893352,"y":237.4182590522528,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"825300","_data":{"mirror":{}}},{"x":206.86253968799198,"y":237.31964390223015,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"825300","_data":{"mirror":{}}},{"x":230.6458573389032,"y":212.11341845065056,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","color":"825300","_data":{"mirror":{}}},{"x":230.8573298654192,"y":236.61250576774327,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","color":"825300","_data":{"mirror":{}}},{"x":252.17169280561885,"y":272.93747436218064,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"825300","curve":-200,"_data":{"mirror":{}}},{"x":208.66890318460239,"y":272.8053741457817,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"825300","curve":-200,"_data":{"mirror":{}}},{"x":254.40299489652025,"y":207.73155558880762,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":207.90041136557878,"y":207.63294043878494,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":254.61446742303613,"y":232.23064290590028,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":208.1118838920947,"y":232.1320277558776,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":231.89520154300592,"y":206.9258023042981,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","color":"FF9100","_data":{"mirror":{}}},{"x":232.10667406952192,"y":231.42488962139072,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","color":"FF9100","_data":{"mirror":{}}},{"x":253.42103700972157,"y":267.7498582158281,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","curve":-200,"_data":{"mirror":{}}},{"x":209.9182473887051,"y":267.6177579994293,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","curve":-200,"_data":{"mirror":{}}},{"x":254.44625357115265,"y":210.3978713612135,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":207.94367004021117,"y":210.29925621119082,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":254.65772609766853,"y":234.89695867830616,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":208.15514256672705,"y":234.79834352828345,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":231.93846021763832,"y":209.5921180767039,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","color":"FF9100","_data":{"mirror":{}}},{"x":232.1499327441542,"y":234.09120539379657,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","color":"FF9100","_data":{"mirror":{}}},{"x":253.46429568435386,"y":270.41617398823394,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","curve":-200,"_data":{"mirror":{}}},{"x":209.96150606333745,"y":270.2840737718351,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","curve":-200,"_data":{"mirror":{}}},{"x":260,"y":-100,"bCoef":0,"cMask":["ball"],"cGroup":["wall"],"trait":"goalNet","vis":false,"curve":0,"damping":0.96,"strength":0.1,"_length":9},{"x":260.5,"y":103,"bCoef":0,"cMask":["ball"],"cGroup":["wall"],"trait":"goalNet","vis":false,"curve":0,"damping":0.96,"strength":0.1,"_length":9},{"x":196,"y":103,"bCoef":0.1,"cMask":["ball"],"cGroup":["wall"],"trait":"goalNet"},{"x":260,"y":100,"bCoef":0,"cMask":["ball"],"cGroup":["wall"],"trait":"goalNet","damping":0.96,"strength":0.1,"_length":9},{"x":204,"y":-100,"bCoef":0.1,"cMask":["ball"],"cGroup":["wall"],"trait":"goalNet"},{"x":260,"y":-100,"bCoef":0,"cMask":["ball"],"cGroup":["wall"],"trait":"goalNet","damping":0.96,"strength":0.1,"_length":9},{"x":252.82031735908419,"y":172.5858384018269,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"825300","_data":{"mirror":{}}},{"x":206.31773382814276,"y":172.48722325180415,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"825300","_data":{"mirror":{}}},{"x":253.03178988560018,"y":197.0849257189195,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"825300","_data":{"mirror":{}}},{"x":206.52920635465864,"y":196.98631056889684,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"825300","_data":{"mirror":{}}},{"x":207.31252400556986,"y":173.44675178398387,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","color":"825300","_data":{"mirror":{}}},{"x":207.52399653208585,"y":197.9458391010766,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","color":"825300","_data":{"mirror":{}}},{"x":254.0696615631869,"y":167.3982222554743,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":207.56707803224543,"y":167.29960710545163,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":254.2811340897028,"y":191.89730957256697,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":207.77855055876137,"y":191.7986944225443,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":208.56186820967258,"y":168.2591356376314,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","color":"FF9100","_data":{"mirror":{}}},{"x":208.77334073618857,"y":192.75822295472403,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","color":"FF9100","_data":{"mirror":{}}},{"x":254.1129202378193,"y":170.0645380278802,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":207.61033670687783,"y":169.9659228778575,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":254.3243927643352,"y":194.56362534497285,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":207.8218092333937,"y":194.46501019495014,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":208.60512688430498,"y":170.92545141003723,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","color":"FF9100","_data":{"mirror":{}}},{"x":208.81659941082086,"y":195.42453872712989,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","color":"FF9100","_data":{"mirror":{}}},{"x":253.48698402575084,"y":-273.7474949315064,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"825300","_data":{"mirror":{}}},{"x":206.98440049480942,"y":-273.84611008152916,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"825300","_data":{"mirror":{}}},{"x":253.69845655226683,"y":-249.24840761441382,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"825300","_data":{"mirror":{}}},{"x":207.1958730213253,"y":-249.34702276443647,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"825300","_data":{"mirror":{}}},{"x":207.9791906722365,"y":-272.88658154934944,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","color":"825300","_data":{"mirror":{}}},{"x":208.1906631987525,"y":-248.38749423225673,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","color":"825300","_data":{"mirror":{}}},{"x":254.73632822985357,"y":-278.935111077859,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":208.2337446989121,"y":-279.0337262278817,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":254.94780075636945,"y":-254.43602376076635,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":208.44521722542802,"y":-254.53463891078903,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":209.22853487633924,"y":-278.0741976957019,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","color":"FF9100","_data":{"mirror":{}}},{"x":209.44000740285523,"y":-253.57511037860928,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","color":"FF9100","_data":{"mirror":{}}},{"x":254.77958690448597,"y":-276.2687953054531,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":208.2770033735445,"y":-276.3674104554758,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":254.99105943100184,"y":-251.76970798836047,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":208.48847590006037,"y":-251.86832313838318,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","vis":true,"color":"FF9100","_data":{"mirror":{}}},{"x":209.27179355097164,"y":-275.4078819232961,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","color":"FF9100","_data":{"mirror":{}}},{"x":209.4832660774875,"y":-250.90879460620343,"bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","color":"FF9100","_data":{"mirror":{}}}],"segments":[{"v0":0,"v1":1,"curve":-90,"color":"FFFFFF","trait":"line"},{"v0":2,"v1":3,"curve":90,"color":"FFFFFF","trait":"line"},{"v0":1,"v1":3,"curve":0,"vis":true,"color":"FFFFFF","bCoef":0,"trait":"line","x":80},{"v0":4,"v1":5,"curve":-90,"vis":true,"color":"FFFFFF","bCoef":0,"trait":"line"},{"v0":6,"v1":7,"curve":90,"vis":true,"color":"FFFFFF","bCoef":0,"trait":"line"},{"v0":8,"v1":9,"curve":-19.445860328533975,"vis":false,"bCoef":0,"cMask":["blue"],"trait":"line","x":215,"p0":[210,100],"p1":[210,-100]},{"v0":10,"v1":11,"curve":11.168835299858449,"vis":false,"bCoef":-0.1,"cMask":["red"]},{"v0":12,"v1":13,"curve":0,"vis":true,"color":"FFFFFF","bCoef":0,"trait":"line","x":0},{"v0":14,"v1":15,"curve":90,"vis":true,"color":"FFFFFF","bCoef":0,"trait":"line","x":0},{"v0":16,"v1":17,"curve":-90,"vis":true,"color":"FFFFFF","bCoef":0,"trait":"line","x":0},{"v0":18,"v1":19,"curve":-180,"vis":true,"color":"FFFFFF","bCoef":0,"trait":"line","x":0},{"v0":20,"v1":21,"curve":180,"vis":true,"color":"FFFFFF","bCoef":0,"trait":"line","x":0},{"v0":24,"v1":25,"curve":0,"vis":true,"color":"FFFFFF","bCoef":0,"cMask":["red","blue"],"trait":"line","x":80},{"v0":29,"v1":30,"curve":0,"vis":true,"color":"FFFFFF","bCoef":0,"trait":"line","x":80},{"v0":35,"v1":36,"curve":0,"vis":true,"color":"FFFFFF","bCoef":0,"cMask":["red","blue"],"trait":"line","x":80},{"v0":37,"v1":38,"curve":0,"vis":true,"color":"FFFFFF","bCoef":0,"trait":"line","x":80},{"v0":39,"v1":40,"curve":0,"vis":true,"color":"825300","bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","_data":{"mirror":{},"arc":{"a":[252.75517390722294,-236.79949577748386],"b":[206.25445651016597,-237.22760973314683],"curve":0}}},{"v0":41,"v1":42,"curve":0,"vis":true,"color":"825300","bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","_data":{"mirror":{},"arc":{"a":[252.7930490351421,-212.29952505352816],"b":[206.292331638085,-212.72763900919108],"curve":0}}},{"v0":43,"v1":44,"curve":0,"vis":true,"color":"825300","bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","_data":{"mirror":{},"arc":{"a":[230.25365486979763,-237.7647113018013],"b":[230.2915299977167,-213.26474057784563],"curve":0}}},{"v0":45,"v1":46,"curve":-200,"vis":true,"color":"825300","bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","_data":{"mirror":{},"arc":{"a":[251.3479716620983,-176.78965763938044],"b":[207.84721013306708,-177.23000031496466],"curve":-200,"radius":22.08704696663522,"center":[229.6364130448141,-180.84500794663907],"from":2.977182025580152,"to":0.184655222389226}}},{"v0":47,"v1":48,"curve":0,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","_data":{"mirror":{},"arc":{"a":[254.04124440858723,-241.9781292736625],"b":[207.54052701153017,-242.4062432293254],"curve":0}}},{"v0":49,"v1":50,"curve":0,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","_data":{"mirror":{},"arc":{"a":[254.07911953650628,-217.4781585497068],"b":[207.5784021394492,-217.9062725053697],"curve":0}}},{"v0":51,"v1":52,"curve":0,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","_data":{"mirror":{},"arc":{"a":[231.53972537116184,-242.94334479797993],"b":[231.57760049908092,-218.4433740740243],"curve":0}}},{"v0":53,"v1":54,"curve":-200,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","_data":{"mirror":{},"arc":{"a":[252.63404216346254,-181.96829113555907],"b":[209.1332806344313,-182.4086338111433],"curve":-200,"radius":22.08704696663523,"center":[230.92248354617834,-186.0236414428177],"from":2.977182025580152,"to":0.184655222389226}}},{"v0":55,"v1":56,"curve":0,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","_data":{"mirror":{},"arc":{"a":[254.06560940257182,-239.31157391924376],"b":[207.56489200551474,-239.73968787490656],"curve":0}}},{"v0":57,"v1":58,"curve":0,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","_data":{"mirror":{},"arc":{"a":[254.10348453049087,-214.81160319528806],"b":[207.6027671334338,-215.23971715095098],"curve":0}}},{"v0":59,"v1":60,"curve":0,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","_data":{"mirror":{},"arc":{"a":[231.56409036514637,-240.2767894435612],"b":[231.6019654930655,-215.77681871960544],"curve":0}}},{"v0":61,"v1":62,"curve":-200,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["wall"],"trait":"line","_data":{"mirror":{},"arc":{"a":[252.6584071574471,-179.30173578114034],"b":[209.1576456284159,-179.74207845672456],"curve":-200,"radius":22.087046966635203,"center":[230.94684854016293,-183.35708608839897],"from":2.977182025580152,"to":0.18465522238922621}}},{"v0":63,"v1":64,"curve":0,"vis":true,"color":"825300","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[253.15365069241753,212.9191717351602],"b":[206.6510671614761,212.82055658513747],"curve":0}}},{"v0":65,"v1":66,"curve":0,"vis":true,"color":"825300","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[253.36512321893352,237.4182590522528],"b":[206.86253968799198,237.31964390223015],"curve":0}}},{"v0":67,"v1":68,"curve":0,"vis":true,"color":"825300","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[230.6458573389032,212.11341845065056],"b":[230.8573298654192,236.61250576774327],"curve":0}}},{"v0":69,"v1":70,"curve":-200,"vis":true,"color":"825300","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[252.17169280561885,272.93747436218064],"b":[208.66890318460239,272.8053741457817],"curve":-200,"radius":22.087046966635256,"center":[230.4319444112649,269.03606648084644],"from":2.970096310906672,"to":0.17756950771574698}}},{"v0":71,"v1":72,"curve":0,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[254.40299489652025,207.73155558880762],"b":[207.90041136557878,207.63294043878494],"curve":0}}},{"v0":73,"v1":74,"curve":0,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[254.61446742303613,232.23064290590028],"b":[208.1118838920947,232.1320277558776],"curve":0}}},{"v0":75,"v1":76,"curve":0,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[231.89520154300592,206.9258023042981],"b":[232.10667406952192,231.42488962139072],"curve":0}}},{"v0":77,"v1":78,"curve":-200,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[253.42103700972157,267.7498582158281],"b":[209.9182473887051,267.6177579994293],"curve":-200,"radius":22.087046966635256,"center":[231.6812886153676,263.848450334494],"from":2.970096310906669,"to":0.1775695077157442}}},{"v0":79,"v1":80,"curve":0,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[254.44625357115265,210.3978713612135],"b":[207.94367004021117,210.29925621119082],"curve":0}}},{"v0":81,"v1":82,"curve":0,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[254.65772609766853,234.89695867830616],"b":[208.15514256672705,234.79834352828345],"curve":0}}},{"v0":83,"v1":84,"curve":0,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[231.93846021763832,209.5921180767039],"b":[232.1499327441542,234.09120539379657],"curve":0}}},{"v0":85,"v1":86,"curve":-200,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[253.46429568435386,270.41617398823394],"b":[209.96150606333745,270.2840737718351],"curve":-200,"radius":22.087046966635228,"center":[231.72454728999992,266.5147661068998],"from":2.9700963109066687,"to":0.17756950771574445}}},{"v0":87,"v1":88,"curve":0,"vis":false,"bCoef":0,"cMask":["ball"],"cGroup":["wall"],"trait":"goalNet","damping":0.96,"strength":0.1,"_length":9},{"v0":89,"v1":90,"curve":0,"vis":false,"bCoef":0.1,"cMask":["ball"],"cGroup":["wall"],"trait":"goalNet"},{"v0":91,"v1":92,"curve":0,"vis":false,"bCoef":0.1,"cMask":["ball"],"cGroup":["wall"],"trait":"goalNet"},{"v0":93,"v1":94,"curve":0,"vis":true,"color":"825300","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[252.82031735908419,172.5858384018269],"b":[206.31773382814276,172.48722325180415],"curve":0}}},{"v0":95,"v1":96,"curve":0,"vis":true,"color":"825300","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[253.03178988560018,197.0849257189195],"b":[206.52920635465864,196.98631056889684],"curve":0}}},{"v0":97,"v1":98,"curve":0,"vis":true,"color":"825300","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[207.31252400556986,173.44675178398387],"b":[207.52399653208585,197.9458391010766],"curve":0}}},{"v0":99,"v1":100,"curve":0,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[254.0696615631869,167.3982222554743],"b":[207.56707803224543,167.29960710545163],"curve":0}}},{"v0":101,"v1":102,"curve":0,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[254.2811340897028,191.89730957256697],"b":[207.77855055876137,191.7986944225443],"curve":0}}},{"v0":103,"v1":104,"curve":0,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[208.56186820967258,168.2591356376314],"b":[208.77334073618857,192.75822295472403],"curve":0}}},{"v0":105,"v1":106,"curve":0,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[254.1129202378193,170.0645380278802],"b":[207.61033670687783,169.9659228778575],"curve":0}}},{"v0":107,"v1":108,"curve":0,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[254.3243927643352,194.56362534497285],"b":[207.8218092333937,194.46501019495014],"curve":0}}},{"v0":109,"v1":110,"curve":0,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[208.60512688430498,170.92545141003723],"b":[208.81659941082086,195.42453872712989],"curve":0}}},{"v0":111,"v1":112,"curve":0,"vis":true,"color":"825300","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[253.48698402575084,-273.7474949315064],"b":[206.98440049480942,-273.84611008152916],"curve":0}}},{"v0":113,"v1":114,"curve":0,"vis":true,"color":"825300","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[253.69845655226683,-249.24840761441382],"b":[207.1958730213253,-249.34702276443647],"curve":0}}},{"v0":115,"v1":116,"curve":0,"vis":true,"color":"825300","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[207.9791906722365,-272.88658154934944],"b":[208.1906631987525,-248.38749423225673],"curve":0}}},{"v0":117,"v1":118,"curve":0,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[254.73632822985357,-278.935111077859],"b":[208.2337446989121,-279.0337262278817],"curve":0}}},{"v0":119,"v1":120,"curve":0,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[254.94780075636945,-254.43602376076635],"b":[208.44521722542802,-254.53463891078903],"curve":0}}},{"v0":121,"v1":122,"curve":0,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[209.22853487633924,-278.0741976957019],"b":[209.44000740285523,-253.57511037860928],"curve":0}}},{"v0":123,"v1":124,"curve":0,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[254.77958690448597,-276.2687953054531],"b":[208.2770033735445,-276.3674104554758],"curve":0}}},{"v0":125,"v1":126,"curve":0,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[254.99105943100184,-251.76970798836047],"b":[208.48847590006037,-251.86832313838318],"curve":0}}},{"v0":127,"v1":128,"curve":0,"vis":true,"color":"FF9100","bCoef":0,"cMask":["blue"],"cGroup":["all","red","blue"],"trait":"line","_data":{"mirror":{},"arc":{"a":[209.27179355097164,-275.4078819232961],"b":[209.4832660774875,-250.90879460620343],"curve":0}}}],"goals":[{"p0":[210,100],"p1":[210,-100],"team":"blue"},{"p0":[200,-102.533340454],"p1":[-1,-102.533340454],"team":"red","trait":"goalNet","_data":{"mirror":{}}},{"p0":[-1,-102.533340454],"p1":[0,-23.5333404541],"team":"red","trait":"goalNet"},{"p0":[-1,-24.5333404541],"p1":[-15,-21.5333404541],"team":"red","trait":"goalNet"},{"p0":[-15,-21.5333404541],"p1":[-15,11.4666595459],"team":"red","trait":"goalNet"},{"p0":[-15,11.4666595459],"p1":[-4,18.4666595459],"team":"red","trait":"goalNet"},{"p0":[-3,18.4666595459],"p1":[0,99.4666595459],"team":"red","trait":"goalNet"},{"p0":[0,99.4666595459],"p1":[200,101.466659546],"team":"red","trait":"goalNet"}],"discs":[{"radius":6,"pos":[200,100],"color":"FFFFFF","bCoef":0.5,"trait":"goalPost"},{"radius":6,"pos":[200,-100],"color":"FFFFFF","bCoef":0.5,"trait":"goalPost"},{"radius":3,"pos":[200.5,-338.5],"color":"FF9100","bCoef":0,"trait":"line"},{"radius":3,"pos":[200,340],"color":"FF9100","bCoef":0,"trait":"line"},{"radius":4,"pos":[260,100],"color":"FF9100","bCoef":0,"cMask":["ball","red","blue","all"],"trait":"goalPost","damping":0.96},{"radius":4,"pos":[260,-100],"color":"FF9100","bCoef":0,"cMask":["ball","red","blue","all"],"trait":"goalPost","damping":0.96},{"radius":4.2,"invMass":2.5,"pos":[213,100],"color":"FFFFFF","bCoef":0.1,"cMask":["ball","red","blue"],"trait":"file","damping":0.96,"_length":9,"strength":0.1},{"radius":4.2,"invMass":1.5,"pos":[260.0266974590394,-86.37435392297095],"color":"FFFFFF","bCoef":0,"cMask":["ball","red","blue"],"trait":"file","damping":0.96,"_length":9,"strength":0.1},{"radius":4.2,"invMass":1.5,"pos":[259.9351546824686,-72.3769162158391],"color":"FFFFFF","bCoef":0,"cMask":["ball","red","blue"],"trait":"file","damping":0.96,"_length":9,"strength":0.1},{"radius":4.2,"invMass":1.5,"pos":[260.35534335547095,-58.37710356533961],"color":"FFFFFF","bCoef":0,"cMask":["ball","red","blue"],"trait":"file","damping":0.96,"_length":9,"strength":0.1},{"radius":4.2,"invMass":1.5,"pos":[260.77317912622334,-44.374949033149015],"color":"FFFFFF","bCoef":0,"cMask":["ball","red","blue"],"trait":"file","damping":0.96,"_length":9,"strength":0.1},{"radius":4.2,"invMass":1.5,"pos":[260.6886730152846,-28.87514740320836],"color":"FFFFFF","bCoef":0,"cMask":["ball","red","blue"],"trait":"file","damping":0.96,"_length":9,"strength":0.1},{"radius":4.2,"invMass":1.5,"pos":[261.09946109984605,-13.870662009885535],"color":"FFFFFF","bCoef":0,"cMask":["ball","red","blue"],"trait":"file","damping":0.96,"_length":9,"strength":0.1},{"radius":4.2,"invMass":1.5,"pos":[260.5266974590394,0.12564607702904595],"color":"FFFFFF","bCoef":0,"cMask":["ball","red","blue"],"trait":"file","damping":0.96,"_length":9,"strength":0.1},{"radius":4.2,"invMass":1.5,"pos":[260.9351546824686,15.123083784160897],"color":"FFFFFF","bCoef":0,"cMask":["ball","red","blue"],"trait":"file","damping":0.96,"_length":9,"strength":0.1},{"radius":4.2,"invMass":1.5,"pos":[260.85534335547095,29.62289643466039],"color":"FFFFFF","bCoef":0,"cMask":["ball","red","blue"],"trait":"file","damping":0.96,"_length":9,"strength":0.1},{"radius":4.2,"invMass":1.5,"pos":[261.27317912622334,44.12505096685098],"color":"FFFFFF","bCoef":0,"cMask":["ball","red","blue"],"trait":"file","damping":0.96,"_length":9,"strength":0.1},{"radius":4.2,"invMass":1.5,"pos":[260.6886730152846,58.62485259679164],"color":"FFFFFF","bCoef":0,"cMask":["ball","red","blue"],"trait":"file","damping":0.96,"_length":9,"strength":0.1},{"radius":4.2,"invMass":1.5,"pos":[260.77317912622334,73.12505096685098],"color":"FFFFFF","bCoef":0,"cMask":["ball","red","blue"],"trait":"file","damping":0.96,"_length":9,"strength":0.1},{"radius":4,"invMass":1.5,"pos":[260.1886730152846,87.12485259679164],"color":"FFFFFF","bCoef":0,"cMask":["ball","red","blue"],"trait":"file","damping":0.96,"_length":9,"strength":0.1},{"radius":4.2,"invMass":2.5,"pos":[249,100],"color":"FFFFFF","bCoef":0.1,"cMask":["ball","red","blue"],"trait":"file","damping":0.96,"_length":9,"strength":0.1},{"radius":4.2,"invMass":2.5,"pos":[237,100],"color":"FFFFFF","bCoef":0.1,"cMask":["ball","red","blue"],"trait":"file","damping":0.96,"_length":9,"strength":0.1},{"radius":4.2,"invMass":2.5,"pos":[225,100],"color":"FFFFFF","bCoef":0.1,"cMask":["ball","red","blue"],"trait":"file","damping":0.96,"_length":9,"strength":0.1},{"radius":4.2,"invMass":2.5,"pos":[249,-100],"color":"FFFFFF","bCoef":0.1,"cMask":["ball","red","blue"],"trait":"file","damping":0.96,"_length":9,"strength":0.1},{"radius":4.2,"invMass":2.5,"pos":[213,-100],"color":"FFFFFF","bCoef":0.1,"cMask":["ball","red","blue"],"trait":"file","damping":0.96,"_length":9,"strength":0.1},{"radius":4.2,"invMass":2.5,"pos":[225,-100],"color":"FFFFFF","bCoef":0.1,"cMask":["ball","red","blue"],"trait":"file","damping":0.96,"_length":9,"strength":0.1},{"radius":4.2,"invMass":2.5,"pos":[237,-100],"color":"FFFFFF","bCoef":0.1,"cMask":["ball","red","blue"],"trait":"file","damping":0.96,"_length":9,"strength":0.1},{"radius":4,"pos":[267,-105],"color":"CC7200","bCoef":0,"cMask":["ball","red","blue","all"],"trait":"goalPost","damping":0.96},{"radius":4,"pos":[274,-111],"color":"B06200","bCoef":0,"cMask":["ball","red","blue","all"],"trait":"goalPost","damping":0.96},{"radius":4,"pos":[281,-117],"color":"965400","bCoef":0,"cMask":["ball","red","blue","all"],"trait":"goalPost","damping":0.96},{"radius":4,"pos":[267,105],"color":"CC7200","bCoef":0,"cMask":["ball","red","blue","all"],"trait":"goalPost","damping":0.96},{"radius":4,"pos":[274,111],"color":"FF9100","bCoef":0,"cMask":["ball","red","blue","all"],"trait":"goalPost","damping":0.96},{"radius":4,"pos":[274,111],"color":"B06200","bCoef":0,"cMask":["ball","red","blue","all"],"trait":"goalPost","damping":0.96},{"radius":4,"pos":[281,117],"color":"965400","bCoef":0,"cMask":["ball","red","blue","all"],"trait":"goalPost","damping":0.96}],"planes":[{"normal":[0,1],"dist":-370,"cMask":["all"],"trait":"ballArea","_data":{"extremes":{"normal":[0,1],"dist":-370,"canvas_rect":[-966,-500,967,500],"a":[-966,-370],"b":[967,-370]}}},{"normal":[0,-1],"dist":-370,"cMask":["all"],"trait":"ballArea","_data":{"extremes":{"normal":[0,-1],"dist":-370,"canvas_rect":[-966,-500,967,500],"a":[-966,370],"b":[967,370]}}},{"normal":[0,1],"dist":-406,"bCoef":0.1,"_data":{"extremes":{"normal":[0,1],"dist":-406,"canvas_rect":[-966,-500,967,500],"a":[-966,-406],"b":[967,-406]}}},{"normal":[0,-1],"dist":-409,"bCoef":0.1,"_data":{"extremes":{"normal":[0,-1],"dist":-409,"canvas_rect":[-966,-500,967,500],"a":[-966,409],"b":[967,409]}}},{"normal":[1,0],"dist":-223,"bCoef":0.1,"cMask":["all"],"_data":{"extremes":{"normal":[1,0],"dist":-223,"canvas_rect":[-966,-500,967,500],"a":[-223,-500],"b":[-223,500]}}},{"normal":[-1,0],"dist":-284,"bCoef":0.1,"vis":true,"invMass":1,"_data":{"extremes":{"normal":[-1,0],"dist":-284,"canvas_rect":[-966,-500,967,500],"a":[284,-500],"b":[284,500]}}}],"traits":{"ballArea":{"vis":false,"bCoef":1,"cMask":["ball"]},"goalPost":{"radius":8,"invMass":0,"bCoef":0.5},"goalNet":{"vis":true,"bCoef":0.1,"cMask":["all"]},"kickOffBarrier":{"vis":false,"bCoef":0.1,"cGroup":["redKO","blueKO"],"cMask":["red","blue"]},"line":{"vis":true,"bCoef":0,"cMask":[""]},"file":{"vis":true}},"playerPhysics":{"acceleration":0.12,"kickingAcceleration":0.083,"kickStrength":4,"bCoef":0},"ballPhysics":{"radius":6.4,"color":"FF9100","bCoef":0.4,"invMass":1.5,"damping":0.99},"joints":[{"d0":1,"d1":7,"strength":"rigid","color":"FFFFFF","length":null},{"d0":7,"d1":23,"_length":9,"strength":0.1,"color":"FFFFFF","length":9,"bCoef":0.1,"invMass":2.5},{"d0":22,"d1":23,"_length":9,"strength":0.1,"color":"FFFFFF","length":9,"bCoef":0.1,"invMass":2.5},{"d0":21,"d1":22,"_length":9,"strength":0.1,"color":"FFFFFF","length":9,"bCoef":0.1,"invMass":2.5},{"d0":5,"d1":21,"strength":"rigid","color":"FFFFFF","length":null},{"d0":5,"d1":20,"_length":9,"strength":0.1,"color":"FFFFFF","length":9,"damping":0.96,"bCoef":0},{"d0":19,"d1":20,"_length":9,"strength":0.1,"color":"FFFFFF","length":9,"invMass":1.5,"bCoef":0,"damping":0.96},{"d0":18,"d1":19,"_length":9,"strength":0.1,"color":"FFFFFF","length":9,"invMass":1.5,"bCoef":0,"damping":0.96},{"d0":17,"d1":18,"_length":9,"strength":0.1,"color":"FFFFFF","length":9,"invMass":1.5,"bCoef":0,"damping":0.96},{"d0":16,"d1":17,"_length":9,"strength":0.1,"color":"FFFFFF","length":9,"invMass":1.5,"bCoef":0,"damping":0.96},{"d0":15,"d1":16,"_length":9,"strength":0.1,"color":"FFFFFF","length":9,"invMass":1.5,"bCoef":0,"damping":0.96},{"d0":14,"d1":15,"_length":9,"strength":0.1,"color":"FFFFFF","length":9,"invMass":1.5,"bCoef":0,"damping":0.96},{"d0":13,"d1":14,"_length":9,"strength":0.1,"color":"FFFFFF","length":9,"invMass":1.5,"bCoef":0,"damping":0.96},{"d0":12,"d1":13,"_length":9,"strength":0.1,"color":"FFFFFF","length":9,"invMass":1.5,"bCoef":0,"damping":0.96},{"d0":11,"d1":12,"_length":9,"strength":0.1,"color":"FFFFFF","length":9,"invMass":1.5,"bCoef":0,"damping":0.96},{"d0":10,"d1":11,"_length":9,"strength":0.1,"color":"FFFFFF","length":9,"invMass":1.5,"bCoef":0,"damping":0.96},{"d0":9,"d1":10,"_length":9,"strength":0.1,"color":"FFFFFF","length":9,"invMass":1.5,"bCoef":0,"damping":0.96},{"d0":8,"d1":9,"_length":9,"strength":0.1,"color":"FFFFFF","length":9,"invMass":1.5,"bCoef":0,"damping":0.96},{"d0":6,"d1":8,"_length":9,"strength":0.1,"color":"FFFFFF","length":9,"damping":0.96,"bCoef":0},{"d0":6,"d1":24,"strength":"rigid","color":"FFFFFF","length":null},{"d0":24,"d1":27,"_length":9,"strength":0.1,"color":"FFFFFF","length":9,"bCoef":0.1,"invMass":2.5},{"d0":26,"d1":27,"_length":9,"strength":0.1,"color":"FFFFFF","length":9,"bCoef":0.1,"invMass":2.5},{"d0":25,"d1":26,"_length":9,"strength":0.1,"color":"FFFFFF","length":9,"bCoef":0.1,"invMass":2.5},{"d0":2,"d1":25,"strength":"rigid","color":"FFFFFF","length":null}],"redSpawnPoints":[],"blueSpawnPoints":[],"canBeStored":false}`, RsVs4: `{"name":"ProfStriker|RS V4| by Poşet","width":1300,"height":700,"spawnDistance":700,"bg":{"type":"grass","color":"3A545E","width":1150,"height":550,"kickOffRadius":180,"cornerRadius":0},"playerPhysics":{"bCoef":0.5,"invMass":0.5,"damping":0.96,"acceleration":0.12,"kickingAcceleration":0.07,"kickingDamping":0.96,"kickStrength":5.65},"ballPhysics":{"radius":8,"bCoef":0.5,"invMass":1,"damping":0.99,"color":"FFFFFF","cMask":["all"],"cGroup":["ball"]},"vertexes":[{"x":0,"y":660,"trait":"kickOffBarrier"},{"x":0,"y":180,"trait":"kickOffBarrier"},{"x":0,"y":-180,"trait":"kickOffBarrier"},{"x":0,"y":-1558,"trait":"kickOffBarrier"},{"x":1150,"y":250,"trait":"line"},{"x":840,"y":250,"trait":"line"},{"x":1150,"y":-250,"trait":"line"},{"x":840,"y":-250,"trait":"line"},{"x":1150,"y":150,"trait":"line"},{"x":1030,"y":150,"trait":"line"},{"x":1150,"y":-150,"trait":"line"},{"x":1030,"y":-150,"trait":"line"},{"x":840,"y":-130,"trait":"line","curve":-130},{"x":840,"y":130,"trait":"line","curve":-130},{"x":-1150,"y":-250,"trait":"line"},{"x":-840,"y":-250,"trait":"line"},{"x":-1150,"y":250,"trait":"line"},{"x":-840,"y":250,"trait":"line"},{"x":-1150,"y":-150,"trait":"line"},{"x":-1030,"y":-150,"trait":"line"},{"x":-1150,"y":150,"trait":"line"},{"x":-1030,"y":150,"trait":"line"},{"x":-840,"y":130,"trait":"line","curve":-130},{"x":-840,"y":-130,"trait":"line","curve":-130},{"x":935,"y":4,"trait":"line"},{"x":935,"y":-4,"trait":"line"},{"x":-935,"y":4,"trait":"line"},{"x":-935,"y":-4,"trait":"line"},{"x":-1150,"y":525,"bCoef":0,"cMask":["wall"],"trait":"line"},{"x":-1125,"y":550,"bCoef":0,"cMask":["wall"],"trait":"line"},{"x":-1125,"y":-550,"bCoef":0,"cMask":["wall"],"trait":"line"},{"x":-1150,"y":-525,"bCoef":0,"cMask":["wall"],"trait":"line"},{"x":1125,"y":550,"bCoef":0,"cMask":["wall"],"trait":"line"},{"x":1150,"y":525,"bCoef":0,"cMask":["wall"],"trait":"line"},{"x":1150,"y":-525,"bCoef":0,"cMask":["wall"],"trait":"line"},{"x":1125,"y":-550,"bCoef":0,"cMask":["wall"],"trait":"line","curve":0},{"x":-1150,"y":112,"trait":"line","color":"ffffff"},{"x":-1210,"y":110,"trait":"line","color":"ffffff"},{"x":-1150,"y":-112,"trait":"line","color":"ffffff"},{"x":-1210,"y":-110,"trait":"line","color":"ffffff"},{"x":1150,"y":112,"trait":"line","color":"ffffff"},{"x":1210,"y":110,"trait":"line","color":"ffffff"},{"x":1150,"y":-112,"trait":"line","color":"ffffff"},{"x":1210,"y":-110,"trait":"line","color":"ffffff"},{"x":0,"y":-4,"trait":"line"},{"x":0,"y":4,"trait":"line"},{"x":0,"y":-4,"trait":"line"},{"x":0,"y":4,"trait":"line"},{"x":-1210,"y":110,"trait":"line","color":"ffffff"},{"x":-1250,"y":150,"trait":"line","color":"ffffff","pos":[-1250,150]},{"x":-1210,"y":-110,"trait":"line","color":"ffffff"},{"x":-1250,"y":-150,"trait":"line","color":"ffffff","pos":[-1250,-150]},{"x":1210,"y":110,"trait":"line","color":"ffffff"},{"x":1250,"y":150,"trait":"line","color":"ffffff"},{"x":1210,"y":-110,"trait":"line","color":"ffffff"},{"x":1250,"y":-150,"trait":"line","color":"ffffff"},{"x":176,"y":35,"bCoef":0.1,"cMask":["red","blue"],"cGroup":["redKO","blueKO"],"trait":"kickOffBarrier","curve":-160.5},{"x":-176,"y":35,"bCoef":0.1,"cMask":["red","blue"],"cGroup":["redKO","blueKO"],"trait":"kickOffBarrier","curve":-160.5},{"x":173,"y":-50,"bCoef":0.1,"cMask":["red","blue"],"cGroup":["redKO","blueKO"],"trait":"kickOffBarrier","curve":154},{"x":-173,"y":-50,"bCoef":0.1,"cMask":["red","blue"],"cGroup":["redKO","blueKO"],"trait":"kickOffBarrier","curve":154},{"x":173,"y":-50,"bCoef":0.1,"cMask":["red","blue"],"cGroup":["redKO"],"trait":"kickOffBarrier","curve":0},{"x":176,"y":35,"bCoef":0.1,"cMask":["red","blue"],"cGroup":["redKO"],"trait":"kickOffBarrier","curve":0},{"x":-173,"y":-50,"bCoef":0.1,"cMask":["red","blue"],"cGroup":["blueKO"],"trait":"kickOffBarrier","curve":0},{"x":-176,"y":36,"bCoef":0.1,"cMask":["red","blue"],"cGroup":["blueKO"],"trait":"kickOffBarrier","curve":0},{"x":-1170,"y":150,"bCoef":-4.5,"cMask":["ball"],"trait":"line","curve":40,"color":"576C46"},{"x":-1170,"y":250,"bCoef":-4.5,"cMask":["ball"],"trait":"line","curve":40,"color":"576C46"},{"x":1170,"y":150,"bCoef":-4.5,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":1170,"y":250,"bCoef":-4.5,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":-1170,"y":-150,"bCoef":-4.5,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":-1170,"y":-250,"bCoef":-4.5,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":1170,"y":-150,"bCoef":-4.5,"cMask":["ball"],"trait":"line","curve":40,"color":"576C46"},{"x":1170,"y":-250,"bCoef":-4.5,"cMask":["ball"],"trait":"line","curve":40,"color":"576C46"},{"x":1162,"y":-550,"bCoef":-2.45,"cMask":["ball"],"trait":"line","curve":-60,"color":"576C46"},{"x":1190,"y":-530,"bCoef":-2.45,"cMask":["ball"],"trait":"line","curve":-60,"color":"576C46"},{"x":1162,"y":550,"bCoef":-2.45,"cMask":["ball"],"trait":"line","curve":60,"color":"576C46"},{"x":1190,"y":530,"bCoef":-2.45,"cMask":["ball"],"trait":"line","curve":60,"color":"576C46"},{"x":-1162,"y":550,"bCoef":-2.45,"cMask":["ball"],"trait":"line","curve":-60,"color":"576C46"},{"x":-1190,"y":530,"bCoef":-2.45,"cMask":["ball"],"trait":"line","curve":-60,"color":"576C46"},{"x":-1162,"y":-550,"bCoef":-2.45,"cMask":["ball"],"trait":"line","curve":60,"color":"576C46"},{"x":-1190,"y":-530,"bCoef":-2.45,"cMask":["ball"],"trait":"line","curve":60,"color":"576C46"},{"x":-1177,"y":-250,"bCoef":0,"cMask":["ball"]},{"x":-1177,"y":-150,"cMask":["ball"]},{"x":-1170,"y":250,"bCoef":-5,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":-1177,"y":250,"bCoef":0,"cMask":["ball"]},{"x":-1170,"y":150,"bCoef":-5,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":-1177,"y":150,"cMask":["ball"]},{"x":1177,"y":-250,"bCoef":0,"cMask":["ball"]},{"x":1177,"y":-150,"cMask":["ball"]},{"x":1170,"y":-150,"bCoef":-5,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":1170,"y":-250,"bCoef":-5,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":1177,"y":250,"bCoef":0,"cMask":["ball"]},{"x":1177,"y":150,"cMask":["ball"]},{"x":1170,"y":250,"bCoef":-5,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":1170,"y":150,"bCoef":-5,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":-820,"y":-550,"trait":"line","curve":90,"color":"5E844D"},{"x":-1150,"y":-260,"trait":"line","curve":90,"color":"5E844D"},{"x":-1150,"y":260,"trait":"line"},{"x":-820,"y":550,"trait":"line"},{"x":820,"y":550,"trait":"line"},{"x":1150,"y":260,"trait":"line"},{"x":820,"y":-550,"trait":"line","curve":-90},{"x":1150,"y":-260,"trait":"line","curve":-90},{"x":1150,"y":-475,"bCoef":0,"cMask":["wall"],"trait":"line","curve":0},{"x":-1150,"y":-475,"bCoef":0,"cMask":["wall"],"trait":"line","curve":0},{"x":1150,"y":475,"bCoef":0,"cMask":["wall"],"trait":"line","curve":0},{"x":-1150,"y":475,"bCoef":0,"cMask":["wall"],"trait":"line","curve":0},{"x":-855.1288660502055,"y":-695,"trait":"line","curve":10,"color":"333333"},{"x":855.3501325895497,"y":-695,"trait":"line","curve":10,"color":"333333"},{"x":-947.7041110574957,"y":-615,"trait":"line","color":"1F1F1F"},{"x":948.3579655833855,"y":-615,"trait":"line","color":"1F1F1F"},{"x":1109.2831521018452,"y":-592,"trait":"line","color":"1F1F1F"},{"x":-1103.438162526973,"y":-594,"trait":"line","color":"1F1F1F"},{"x":-1103.438162526973,"y":-596,"trait":"line","color":"292929"},{"x":-947.7041110574957,"y":-617,"trait":"line","color":"292929"},{"x":948.3579655833855,"y":-617,"trait":"line","color":"292929"},{"x":1109.2831521018452,"y":-594,"trait":"line","color":"292929"},{"x":-1061.9090821351122,"y":-681,"trait":"line","curve":10,"color":"333333"},{"x":1069.0518554722303,"y":-681,"trait":"line","curve":10,"color":"333333"},{"x":-8.314822249282088,"y":-694.984375,"trait":"line","color":"002033"},{"x":-9.61260601152776,"y":-617.984375,"trait":"line","color":"002033"},{"x":11.151934184402762,"y":-694.984375,"trait":"line","color":"002033"},{"x":11.151934184402762,"y":-617.984375,"trait":"line","color":"002033"},{"x":299.25992940293486,"y":-694.984375,"trait":"line","color":"002033"},{"x":282.3887404937416,"y":-617.984375,"trait":"line","color":"002033"},{"x":318.7266858366197,"y":-694.984375,"trait":"line","color":"002033"},{"x":303.15328068967165,"y":-617.984375,"trait":"line","color":"002033"},{"x":-650.7177845608744,"y":-694.984375,"trait":"line","color":"002033"},{"x":-620.8687580292244,"y":-617.984375,"trait":"line","color":"002033"},{"x":-629.953244364944,"y":-694.984375,"trait":"line","color":"002033"},{"x":-598.8064340710488,"y":-617.984375,"trait":"line","color":"002033"},{"x":-1008.9061029406712,"y":-686.984375,"trait":"line","color":"002033"},{"x":-956.9947524508457,"y":-614.984375,"trait":"line","color":"002033"},{"x":-986.8437789824953,"y":-688.984375,"trait":"line","color":"002033"},{"x":-936.2302122549153,"y":-617.984375,"trait":"line","color":"002033"},{"x":-293.25772691777706,"y":-694.984375,"trait":"line","color":"002033"},{"x":-276.38653800858344,"y":-617.984375,"trait":"line","color":"002033"},{"x":-312.7244833514616,"y":-694.984375,"trait":"line","color":"002033"},{"x":-297.15107820451396,"y":-617.984375,"trait":"line","color":"002033"},{"x":642.892785833513,"y":-694.984375,"trait":"line","color":"002033"},{"x":613.0437593018632,"y":-617.984375,"trait":"line","color":"002033"},{"x":622.1282456375825,"y":-694.984375,"trait":"line","color":"002033"},{"x":590.9814353436873,"y":-617.984375,"trait":"line","color":"002033"},{"x":1010.4251532422609,"y":-686.984375,"trait":"line","color":"002033"},{"x":958.5138027524354,"y":-614.984375,"trait":"line","color":"002033"},{"x":988.3628292840854,"y":-688.984375,"trait":"line","color":"002033"},{"x":937.7492625565051,"y":-617.984375,"trait":"line","color":"002033"},{"x":-855.1288660502055,"y":-697,"trait":"line","curve":10,"color":"404040"},{"x":855.3501325895497,"y":-697,"trait":"line","curve":10,"color":"404040"},{"x":-1061.9090821351122,"y":-683,"trait":"line","curve":10,"color":"404040"},{"x":1069.0518554722303,"y":-683,"trait":"line","curve":10,"color":"404040"},{"x":-8.454742531540433,"y":-685.8000030517578,"trait":"line"},{"x":11.012013902143963,"y":-685.8000030517578,"trait":"line"},{"x":-8.454742531540433,"y":-674.8000030517578,"trait":"line","color":"004987"},{"x":11.012013902143963,"y":-674.8000030517578,"trait":"line","color":"004987"},{"x":-8.454742531540433,"y":-662.8000030517578,"trait":"line","color":"005094"},{"x":11.012013902143963,"y":-662.8000030517578,"trait":"line","color":"005094"},{"x":-8.454742531540433,"y":-651.8000030517578,"trait":"line","color":"0058A3"},{"x":11.012013902143963,"y":-651.8000030517578,"trait":"line","color":"0058A3"},{"x":-8.454742531540433,"y":-639.8000030517578,"trait":"line","color":"0064BA"},{"x":11.012013902143963,"y":-639.8000030517578,"trait":"line","color":"0064BA"},{"x":-8.454742531540433,"y":-626.8000030517578,"trait":"line","color":"0068C2"},{"x":11.012013902143963,"y":-626.8000030517578,"trait":"line","color":"0068C2"},{"x":-310.8383591347749,"y":-685.8000030517578,"trait":"line"},{"x":-291.37160270109007,"y":-685.8000030517578,"trait":"line"},{"x":-308.24279161028346,"y":-673.8000030517578,"trait":"line","color":"004987"},{"x":-288.77603517659895,"y":-673.8000030517578,"trait":"line","color":"004987"},{"x":-305.64722408579235,"y":-661.8000030517578,"trait":"line","color":"005094"},{"x":-286.1804676521076,"y":-661.8000030517578,"trait":"line","color":"005094"},{"x":-303.05165656130123,"y":-650.8000030517578,"trait":"line","color":"0058A3"},{"x":-283.5849001276164,"y":-650.8000030517578,"trait":"line","color":"0058A3"},{"x":-300.45608903680954,"y":-638.8000030517578,"trait":"line","color":"0064BA"},{"x":-280.98933260312526,"y":-638.8000030517578,"trait":"line","color":"0064BA"},{"x":-299.15830527456376,"y":-627.8000030517578,"trait":"line","color":"0068C2"},{"x":-279.69154884087936,"y":-627.8000030517578,"trait":"line","color":"0068C2"},{"x":297.82222535843084,"y":-686.8000030517578,"trait":"line"},{"x":317.28898179211524,"y":-686.8000030517578,"trait":"line"},{"x":295.2266578339395,"y":-674.8000030517578,"trait":"line","color":"004987"},{"x":314.6934142676241,"y":-674.8000030517578,"trait":"line","color":"004987"},{"x":292.6310903094484,"y":-663.8000030517578,"trait":"line","color":"005094"},{"x":312.0978467431328,"y":-663.8000030517578,"trait":"line","color":"005094"},{"x":290.03552278495727,"y":-650.8000030517578,"trait":"line","color":"0058A3"},{"x":309.50227921864166,"y":-650.8000030517578,"trait":"line","color":"0058A3"},{"x":287.4399552604657,"y":-638.8000030517578,"trait":"line","color":"0064BA"},{"x":306.9067116941503,"y":-638.8000030517578,"trait":"line","color":"0064BA"},{"x":284.84438773597435,"y":-627.8000030517578,"trait":"line","color":"0068C2"},{"x":304.3111441696592,"y":-627.8000030517578,"trait":"line","color":"0068C2"},{"x":619.6725983953497,"y":-684.8000030517578,"trait":"line"},{"x":639.1393548290346,"y":-684.8000030517578,"trait":"line"},{"x":614.4814633463673,"y":-673.8000030517578,"trait":"line","color":"004987"},{"x":633.9482197800517,"y":-673.8000030517578,"trait":"line","color":"004987"},{"x":610.5881120596305,"y":-662.8000030517578,"trait":"line","color":"005094"},{"x":630.0548684933149,"y":-662.8000030517578,"trait":"line","color":"005094"},{"x":605.3969770106478,"y":-650.8000030517578,"trait":"line","color":"0058A3"},{"x":624.8637334443324,"y":-650.8000030517578,"trait":"line","color":"0058A3"},{"x":601.503625723911,"y":-639.8000030517578,"trait":"line","color":"0064BA"},{"x":620.9703821575954,"y":-639.8000030517578,"trait":"line","color":"0064BA"},{"x":596.3124906749281,"y":-627.8000030517578,"trait":"line","color":"0068C2"},{"x":615.7792471086129,"y":-627.8000030517578,"trait":"line","color":"0068C2"},{"x":-645.6665697941501,"y":-684.8000030517578,"trait":"line"},{"x":-626.1998133604656,"y":-684.8000030517578,"trait":"line"},{"x":-641.7732185074132,"y":-673.8000030517578,"trait":"line","color":"004987"},{"x":-622.3064620737287,"y":-673.8000030517578,"trait":"line","color":"004987"},{"x":-636.5820834584306,"y":-661.8000030517578,"trait":"line","color":"005094"},{"x":-617.1153270247462,"y":-661.8000030517578,"trait":"line","color":"005094"},{"x":-631.3909484094484,"y":-650.8000030517578,"trait":"line","color":"0058A3"},{"x":-611.9241919757636,"y":-650.8000030517578,"trait":"line","color":"0058A3"},{"x":-627.497597122711,"y":-639.8000030517578,"trait":"line","color":"0064BA"},{"x":-608.0308406890267,"y":-639.8000030517578,"trait":"line","color":"0064BA"},{"x":-622.3064620737287,"y":-627.8000030517578,"trait":"line","color":"0068C2"},{"x":-602.8397056400439,"y":-627.8000030517578,"trait":"line","color":"0068C2"},{"x":-1002.5571044117016,"y":-680.8000030517578,"trait":"line"},{"x":-983.0903479780168,"y":-680.8000030517578,"trait":"line"},{"x":-994.7704018382276,"y":-669.8000030517578,"trait":"line","color":"004987"},{"x":-975.3036454045429,"y":-669.8000030517578,"trait":"line","color":"004987"},{"x":-985.6859155025082,"y":-658.8000030517578,"trait":"line","color":"005094"},{"x":-966.2191590688235,"y":-658.8000030517578,"trait":"line","color":"005094"},{"x":-977.8992129290343,"y":-646.8000030517578,"trait":"line","color":"0058A3"},{"x":-958.4324564953498,"y":-646.8000030517578,"trait":"line","color":"0058A3"},{"x":-968.8147265933146,"y":-634.8000030517578,"trait":"line","color":"0064BA"},{"x":-949.3479701596301,"y":-634.8000030517578,"trait":"line","color":"0064BA"},{"x":-961.0280240198409,"y":-623.8000030517578,"trait":"line","color":"0068C2"},{"x":-941.5612675861564,"y":-623.8000030517578,"trait":"line","color":"0068C2"},{"x":984.3498355863749,"y":-680.8000030517578,"trait":"line"},{"x":1003.8165920200599,"y":-680.8000030517578,"trait":"line"},{"x":976.5631330129008,"y":-669.8000030517578,"trait":"line","color":"004987"},{"x":996.0298894465855,"y":-669.8000030517578,"trait":"line","color":"004987"},{"x":968.7764304394273,"y":-658.8000030517578,"trait":"line","color":"005094"},{"x":988.2431868731119,"y":-658.8000030517578,"trait":"line","color":"005094"},{"x":960.9897278659532,"y":-647.8000030517578,"trait":"line","color":"0058A3"},{"x":980.4564842996379,"y":-647.8000030517578,"trait":"line","color":"0058A3"},{"x":953.2030252924797,"y":-636.8000030517578,"trait":"line","color":"0064BA"},{"x":972.6697817261643,"y":-636.8000030517578,"trait":"line","color":"0064BA"},{"x":945.4163227190056,"y":-626.8000030517578,"trait":"line","color":"0068C2"},{"x":964.8830791526902,"y":-626.8000030517578,"trait":"line","color":"0068C2"},{"x":-1062.255157475001,"y":-629.8000030517578,"trait":"line","color":"0058A3"},{"x":-1053.1706711392812,"y":-617.8000030517578,"trait":"line","color":"0064BA"},{"x":-1063.7836564802883,"y":-685.2118072509766,"trait":"line"},{"x":1107.985378240904,"y":-593,"trait":"line","color":"1F1F1F"},{"x":1107.985378240904,"y":-595,"trait":"line","color":"292929"},{"x":1066.4562978490435,"y":-680,"trait":"line","curve":10,"color":"333333"},{"x":1066.4562978490435,"y":-682,"trait":"line","curve":10,"color":"404040"},{"x":1068.3308721942194,"y":-684.2118072509766,"trait":"line"}],"segments":[{"v0":37,"v1":39,"color":"ffffff","trait":"reargoalNetleft","x":-1210},{"v0":41,"v1":43,"color":"ffffff","trait":"reargoalNetright"},{"v0":0,"v1":1,"trait":"kickOffBarrier"},{"v0":2,"v1":3,"trait":"kickOffBarrier"},{"v0":4,"v1":5,"trait":"line","y":250},{"v0":5,"v1":7,"trait":"line","x":840},{"v0":6,"v1":7,"trait":"line","y":-250},{"v0":8,"v1":9,"trait":"line","y":150},{"v0":9,"v1":11,"trait":"line","x":1030},{"v0":10,"v1":11,"trait":"line","y":-150},{"v0":12,"v1":13,"curve":-130,"trait":"line","x":840},{"v0":14,"v1":15,"trait":"line","y":-250},{"v0":15,"v1":17,"trait":"line","x":-840},{"v0":16,"v1":17,"trait":"line","y":250},{"v0":18,"v1":19,"trait":"line","y":-150},{"v0":19,"v1":21,"trait":"line","x":-1030},{"v0":20,"v1":21,"trait":"line","y":150},{"v0":22,"v1":23,"curve":-130,"trait":"line","x":-840},{"v0":24,"v1":25,"curve":-180,"trait":"line","x":935},{"v0":26,"v1":27,"curve":-180,"trait":"line","x":-935},{"v0":24,"v1":25,"curve":180,"trait":"line","x":935},{"v0":26,"v1":27,"curve":180,"trait":"line","x":-935},{"v0":24,"v1":25,"curve":90,"trait":"line","x":935},{"v0":26,"v1":27,"curve":90,"trait":"line","x":-935},{"v0":24,"v1":25,"curve":-90,"trait":"line","x":935},{"v0":26,"v1":27,"curve":-90,"trait":"line","x":-935},{"v0":24,"v1":25,"trait":"line","x":935},{"v0":26,"v1":27,"trait":"line","x":-935},{"v0":28,"v1":29,"curve":90,"bCoef":0,"cMask":["wall"],"trait":"line"},{"v0":30,"v1":31,"curve":90,"bCoef":0,"cMask":["wall"],"trait":"line"},{"v0":32,"v1":33,"curve":90,"bCoef":0,"cMask":["wall"],"trait":"line"},{"v0":34,"v1":35,"curve":90,"bCoef":0,"cMask":["wall"],"trait":"line"},{"v0":36,"v1":37,"curve":5,"color":"ffffff","trait":"sidegoalNet"},{"v0":38,"v1":39,"curve":-5,"color":"ffffff","trait":"sidegoalNet"},{"v0":40,"v1":41,"curve":-5,"color":"ffffff","trait":"sidegoalNet"},{"v0":42,"v1":43,"curve":5,"color":"ffffff","trait":"sidegoalNet"},{"v0":44,"v1":45,"curve":-180,"trait":"line"},{"v0":46,"v1":47,"curve":180,"trait":"line"},{"v0":44,"v1":45,"curve":-90,"trait":"line"},{"v0":46,"v1":47,"curve":90,"trait":"line"},{"v0":48,"v1":49,"color":"ffffff","trait":"line"},{"v0":50,"v1":51,"color":"ffffff","trait":"line"},{"v0":52,"v1":53,"color":"ffffff","trait":"line"},{"v0":54,"v1":55,"color":"ffffff","trait":"line"},{"v0":57,"v1":56,"curve":-158.308949469,"vis":false,"bCoef":0.1,"cMask":["red","blue"],"cGroup":["redKO","blueKO"],"trait":"kickOffBarrier"},{"v0":59,"v1":58,"curve":147.976007629,"vis":false,"bCoef":0.1,"cMask":["red","blue"],"cGroup":["redKO","blueKO"],"trait":"kickOffBarrier"},{"v0":60,"v1":61,"curve":24.0445533724,"vis":false,"bCoef":0.1,"cMask":["red","blue"],"cGroup":["redKO"],"trait":"kickOffBarrier","x":200},{"v0":62,"v1":63,"curve":-21.4653291133,"vis":false,"bCoef":0.1,"cMask":["red","blue"],"cGroup":["blueKO"],"trait":"kickOffBarrier","x":-200},{"v0":64,"v1":65,"curve":40,"vis":true,"color":"576C46","bCoef":-4.7,"cMask":["ball"],"trait":"line","x":-1220},{"v0":66,"v1":67,"curve":-40,"vis":true,"color":"576C46","bCoef":-4.7,"cMask":["ball"],"trait":"line","x":1220},{"v0":68,"v1":69,"curve":-40,"vis":true,"color":"576C46","bCoef":-4.7,"cMask":["ball"],"trait":"line","x":-1220},{"v0":70,"v1":71,"curve":40,"vis":true,"color":"576C46","bCoef":-4.7,"cMask":["ball"],"trait":"line","x":1220},{"v0":72,"v1":73,"curve":-60,"vis":true,"color":"576C46","bCoef":-2.45,"cMask":["ball"],"trait":"line"},{"v0":74,"v1":75,"curve":60,"vis":true,"color":"576C46","bCoef":-2.45,"cMask":["ball"],"trait":"line"},{"v0":76,"v1":77,"curve":-60,"vis":true,"color":"576C46","bCoef":-2.45,"cMask":["ball"],"trait":"line"},{"v0":78,"v1":79,"curve":60,"vis":true,"color":"576C46","bCoef":-2.45,"cMask":["ball"],"trait":"line"},{"v0":69,"v1":80,"vis":true,"bCoef":0,"cMask":["ball"]},{"v0":68,"v1":81,"vis":true,"cMask":["ball"]},{"v0":85,"v1":84,"vis":true,"cMask":["ball"]},{"v0":83,"v1":82,"vis":true,"cMask":["ball"]},{"v0":91,"v1":93,"vis":true,"color":"000000","cMask":["ball"]},{"v0":90,"v1":92,"vis":true,"color":"000000","cMask":["ball"]},{"v0":86,"v1":89,"vis":true,"color":"000000","cMask":["ball"]},{"v0":87,"v1":88,"vis":true,"color":"000000","cMask":["ball"]},{"v0":94,"v1":95,"curve":90,"vis":true,"color":"5E844D","trait":"line"},{"v0":96,"v1":97,"curve":90,"vis":true,"color":"5E844D","trait":"line"},{"v0":98,"v1":99,"curve":90,"vis":true,"color":"5E844D","trait":"line"},{"v0":100,"v1":101,"curve":-90,"vis":true,"color":"5E844D","trait":"line"},{"v0":102,"v1":103,"curve":0,"vis":true,"color":"5E844D","bCoef":0,"cMask":["wall"],"trait":"line"},{"v0":104,"v1":105,"curve":0,"vis":true,"color":"5E844D","bCoef":0,"cMask":["wall"],"trait":"line","y":475},{"v0":106,"v1":107,"vis":true,"color":"333333","trait":"line"},{"v0":108,"v1":109,"vis":true,"color":"1F1F1F","trait":"line"},{"v0":109,"v1":110,"vis":true,"color":"1F1F1F","trait":"line"},{"v0":108,"v1":111,"vis":true,"color":"1F1F1F","trait":"line"},{"v0":112,"v1":113,"vis":true,"color":"292929","trait":"line"},{"v0":113,"v1":114,"vis":true,"color":"292929","trait":"line"},{"v0":114,"v1":115,"vis":true,"color":"292929","trait":"line"},{"v0":116,"v1":106,"curve":7.7614582979000035,"vis":true,"color":"333333","trait":"line"},{"v0":107,"v1":117,"curve":7.712742168438823,"vis":true,"color":"333333","trait":"line"},{"v0":118,"v1":119,"color":"002033","trait":"line"},{"v0":120,"v1":121,"color":"002033","trait":"line"},{"v0":122,"v1":123,"color":"002033","trait":"line"},{"v0":124,"v1":125,"color":"002033","trait":"line"},{"v0":126,"v1":127,"color":"002033","trait":"line"},{"v0":128,"v1":129,"color":"002033","trait":"line"},{"v0":130,"v1":131,"color":"002033","trait":"line"},{"v0":132,"v1":133,"color":"002033","trait":"line"},{"v0":134,"v1":135,"color":"002033","trait":"line"},{"v0":136,"v1":137,"color":"002033","trait":"line"},{"v0":138,"v1":139,"color":"002033","trait":"line"},{"v0":140,"v1":141,"color":"002033","trait":"line"},{"v0":142,"v1":143,"color":"002033","trait":"line"},{"v0":144,"v1":145,"color":"002033","trait":"line"},{"v0":146,"v1":147,"vis":true,"color":"404040","trait":"line"},{"v0":148,"v1":146,"curve":7.761458297900168,"vis":true,"color":"404040","trait":"line"},{"v0":147,"v1":149,"curve":7.712742168438773,"vis":true,"color":"404040","trait":"line"},{"v0":150,"v1":151,"color":"004077","trait":"line"},{"v0":152,"v1":153,"color":"004987","trait":"line"},{"v0":154,"v1":155,"color":"005094","trait":"line"},{"v0":156,"v1":157,"color":"0058A3","trait":"line"},{"v0":158,"v1":159,"color":"0064BA","trait":"line"},{"v0":160,"v1":161,"color":"0068C2","trait":"line"},{"v0":162,"v1":163,"color":"004077","trait":"line"},{"v0":164,"v1":165,"color":"004987","trait":"line"},{"v0":166,"v1":167,"color":"005094","trait":"line"},{"v0":168,"v1":169,"color":"0058A3","trait":"line"},{"v0":170,"v1":171,"color":"0064BA","trait":"line"},{"v0":172,"v1":173,"color":"0068C2","trait":"line"},{"v0":174,"v1":175,"color":"004077","trait":"line"},{"v0":176,"v1":177,"color":"004987","trait":"line"},{"v0":178,"v1":179,"color":"005094","trait":"line"},{"v0":180,"v1":181,"color":"0058A3","trait":"line"},{"v0":182,"v1":183,"color":"0064BA","trait":"line"},{"v0":184,"v1":185,"color":"0068C2","trait":"line"},{"v0":186,"v1":187,"color":"004077","trait":"line"},{"v0":188,"v1":189,"color":"004987","trait":"line"},{"v0":190,"v1":191,"color":"005094","trait":"line"},{"v0":192,"v1":193,"color":"0058A3","trait":"line"},{"v0":194,"v1":195,"color":"0064BA","trait":"line"},{"v0":196,"v1":197,"color":"0068C2","trait":"line"},{"v0":198,"v1":199,"color":"004077","trait":"line"},{"v0":200,"v1":201,"color":"004987","trait":"line"},{"v0":202,"v1":203,"color":"005094","trait":"line"},{"v0":204,"v1":205,"color":"0058A3","trait":"line"},{"v0":206,"v1":207,"color":"0064BA","trait":"line"},{"v0":208,"v1":209,"color":"0068C2","trait":"line"},{"v0":210,"v1":211,"color":"004077","trait":"line"},{"v0":212,"v1":213,"color":"004987","trait":"line"},{"v0":214,"v1":215,"color":"005094","trait":"line"},{"v0":216,"v1":217,"color":"0058A3","trait":"line"},{"v0":218,"v1":219,"color":"0064BA","trait":"line"},{"v0":220,"v1":221,"color":"0068C2","trait":"line"},{"v0":222,"v1":223,"color":"004077","trait":"line"},{"v0":224,"v1":225,"color":"004987","trait":"line"},{"v0":226,"v1":227,"color":"005094","trait":"line"},{"v0":228,"v1":229,"color":"0058A3","trait":"line"},{"v0":230,"v1":231,"color":"0064BA","trait":"line"},{"v0":232,"v1":233,"color":"0068C2","trait":"line"},{"v0":112,"v1":148,"curve":12.203296446682453,"vis":true,"color":"404040","trait":"line"},{"v0":112,"v1":236,"curve":20.94268494326163,"vis":true,"color":"292929","trait":"line"},{"v0":238,"v1":240,"curve":-12.20329644668193,"vis":true,"color":"404040","trait":"line"},{"v0":238,"v1":241,"curve":-20.94268494326035,"vis":true,"color":"292929","trait":"line"}],"goals":[{"p0":[-1163,110],"p1":[-1163,-110],"team":"red"},{"p0":[1163,110],"p1":[1163,-110],"team":"blue"}],"discs":[{"pos":[-1150,110],"trait":"goalPost"},{"pos":[-1150,-110],"trait":"goalPost"},{"pos":[1150,110],"trait":"goalPost"},{"pos":[1150,-110],"trait":"goalPost"},{"pos":[-1250,150],"trait":"stanchion"},{"pos":[-1250,-150],"trait":"stanchion"},{"pos":[1250,150],"trait":"stanchion","x":1250},{"pos":[1250,-150],"trait":"stanchion","x":1250},{"pos":[-1150,-550],"trait":"cornerflag"},{"pos":[-1150,550],"trait":"cornerflag"},{"pos":[1150,-550],"trait":"cornerflag"},{"pos":[1150,550],"trait":"cornerflag"},{"radius":9.174037242580487,"invMass":0,"pos":[-849.4102969350783,-647.9455655938135],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-849.4102969350783,-657.8569874487814],"color":"D9B28B","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-902.4333836971477,-655.3616496157489],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-929.7670086784532,-656.6005773476198],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-929.7670086784532,-666.5119992025877],"color":"fae7d4","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-870.3124807443116,-631.8395050794909],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-870.3124807443116,-641.7509269344587],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-887.9626410599858,-670.2287823982006],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-887.9626410599858,-680.1402042531685],"color":"d9c095","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":12.702513105111443,"invMass":0,"pos":[-804.3902087305747,-633.0784328113618],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-804.3902087305747,-642.9898546663296],"color":"CcB68a","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-902.4333836971477,-665.2730714707167],"color":"F0C7AF","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[831.3396545217147,-647.9455655938135],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[831.3396545217147,-657.8569874487814],"color":"D9B28B","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[1054.2922481638166,-619.3616496157489],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[752.5756748954666,-667.1844933256846],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[752.5756748954666,-676.0959151806524],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[890.8304853633799,-630.6005773476198],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[890.8304853633799,-640.5119992025877],"color":"6B5841","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[791.3594431803579,-666.6005773476198],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[918.1641103446859,-631.8395050794909],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[918.1641103446859,-641.7509269344587],"color":"6B5841","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[754.6645310333679,-637.6005773476198],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[754.6645310333679,-647.5119992025877],"color":"fae7d4","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[1013.9354088900727,-632.6005773476198],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[1013.9354088900727,-643.5119992025877],"color":"F0C7AF","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[852.2418383309484,-631.8395050794909],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[852.2418383309484,-641.7509269344587],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[1067.1551305079602,-634.2287823982006],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[1067.1551305079602,-644.1402042531685],"color":"d9c095","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[895.1367674900275,-667.6005773476198],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":12.702513105111443,"invMass":0,"pos":[786.3195663172116,-633.0784328113618],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[786.3195663172116,-642.9898546663296],"color":"CcB68a","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[895.1367674900275,-679.5119992025877],"color":"fae7d4","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[791.3594431803579,-676.5119992025877],"color":"CcB68a","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[1054.2922481638166,-629.2730714707167],"color":"6B5841","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":12.702513105111443,"invMass":0,"pos":[-725.605054372694,-633.0784328113618],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":12.702513105111443,"invMass":0,"pos":[-688.6242676332802,-633.0784328113618],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":12.702513105111443,"invMass":0,"pos":[-402.4251354760802,-631.8395050794909],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-761.1973040098977,-664.8395050794909],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-372.76971659353205,-668.3616496157489],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-372.76971659353205,-677.2730714707167],"color":"6B5841","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-436.1902016294579,-630.6005773476198],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-534.2696795035542,-630.6005773476198],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-534.2696795035542,-640.5119992025877],"color":"D9B28B","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-500.5046133501768,-630.6005773476198],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-420.11159869927803,-651.6623487894265],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-487.64173100603296,-650.4234210575555],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-487.64173100603296,-660.3348429125233],"color":"fae7d4","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-580.8976280010756,-647.9455655938135],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-580.8976280010756,-657.8569874487814],"color":"D9B28B","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-643.6041794287769,-650.4234210575555],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-643.6041794287769,-660.3348429125233],"color":"F0C7AF","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-672.5456647031001,-652.9012765212974],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-672.5456647031001,-662.8126983762653],"color":"fae7d4","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-514.9753559873384,-654.1402042531685],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-725.605054372694,-642.9898546663296],"color":"D9B28B","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-688.6242676332802,-642.9898546663296],"color":"d9c095","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-402.4251354760802,-641.7509269344587],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-761.1973040098977,-676.7509269344587],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-436.1902016294579,-640.5119992025877],"color":"CcB68a","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-500.5046133501768,-640.5119992025877],"color":"D9B28B","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-420.11159869927803,-661.5737706443942],"color":"fae7d4","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-514.9753559873384,-664.0516261081362],"color":"D9B28B","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":12.702513105111443,"invMass":0,"pos":[710.9287891410352,-633.0784328113618],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":12.702513105111443,"invMass":0,"pos":[673.948002401622,-633.0784328113618],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":12.702513105111443,"invMass":0,"pos":[387.7488702444218,-631.8395050794909],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[640.1027702740971,-632.8395050794909],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[583.9078259926152,-629.3616496157489],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[583.9078259926152,-639.2730714707167],"color":"6B5841","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[450.45542167212284,-630.6005773476198],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[550.1427598392374,-629.3616496157489],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[485.82834811851853,-630.6005773476198],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[405.4353334676198,-651.6623487894265],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[437.59253932797924,-650.4234210575555],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[691.6344656248198,-651.6623487894265],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[575.6960916100563,-666.9012765212974],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[530.848436323022,-654.1402042531685],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[500.2990907556805,-654.1402042531685],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[710.9287891410352,-642.9898546663296],"color":"D9B28B","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[673.948002401622,-642.9898546663296],"color":"d9c095","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[387.7488702444218,-641.7509269344587],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[641.4005540363428,-642.7509269344587],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[450.45542167212284,-640.5119992025877],"color":"fae7d4","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[550.1427598392374,-639.2730714707167],"color":"6B5841","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[485.82834811851853,-640.5119992025877],"color":"D9B28B","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[437.59253932797924,-660.3348429125233],"color":"6B5841","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[691.6344656248198,-661.5737706443942],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[575.6960916100563,-676.8126983762653],"color":"d9c095","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[405.4353334676198,-661.5737706443942],"color":"fae7d4","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[530.848436323022,-664.0516261081362],"color":"d9c095","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[500.2990907556805,-664.0516261081362],"color":"D9B28B","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":12.702513105111443,"invMass":0,"pos":[-325.247841411217,-633.0784328113618],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-363.1709587121221,-640.6005773476198],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-264.1491502765341,-630.6005773476198],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-264.1491502765341,-640.5119992025877],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-228.77622383013806,-633.0784328113618],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-228.77622383013806,-642.9898546663296],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-156.42251064432946,-631.8395050794909],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-124.26530478396967,-630.6005773476198],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-124.26530478396967,-640.5119992025877],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-93.71595921662833,-630.6005773476198],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-93.71595921662833,-640.5119992025877],"color":"fae7d4","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-63.166613649286774,-631.8395050794909],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-37.44084896099889,-630.6005773476198],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-203.05045914185087,-652.9012765212974],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-203.05045914185087,-662.8126983762653],"color":"F0C7AF","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-117.83386361189787,-654.1402042531685],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-117.83386361189787,-664.0516261081362],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-161.24609152338314,-654.1402042531685],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-161.24609152338314,-664.0516261081362],"color":"d9c095","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-42.264429840053026,-655.3791319850394],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-42.264429840053026,-665.2905538400073],"color":"6B5841","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-262.25390178773455,-673.1402042531685],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-262.25390178773455,-683.0516261081362],"color":"D9B28B","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-325.247841411217,-642.9898546663296],"color":"d9c095","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-363.1709587121221,-650.5119992025877],"color":"F0C7AF","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-156.42251064432946,-641.7509269344587],"color":"6B5841","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-63.166613649286774,-641.7509269344587],"color":"F0C7AF","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-37.44084896099889,-640.5119992025877],"color":"D9B28B","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":12.702513105111443,"invMass":0,"pos":[338.3507394611322,-633.0784328113618],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[273.7489395446314,-662.6005773476198],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[255.18972436827312,-630.6005773476198],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[186.05173176850008,-630.6005773476198],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[147.46308473606837,-631.8395050794909],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[115.30587887570869,-630.6005773476198],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[84.75653330836758,-630.6005773476198],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[28.481423052738137,-630.6005773476198],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[239.11112143809305,-652.9012765212974],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[239.11112143809305,-662.8126983762653],"color":"fae7d4","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[194.09103323359,-652.9012765212974],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[194.09103323359,-662.8126983762653],"color":"F0C7AF","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[108.87443770363666,-654.1402042531685],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[108.87443770363666,-664.0516261081362],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[63.854349499133605,-654.1402042531685],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[63.854349499133605,-664.0516261081362],"color":"6B5841","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[255.18972436827312,-640.5119992025877],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[115.30587887570869,-640.5119992025877],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[84.75653330836758,-640.5119992025877],"color":"fae7d4","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[338.3507394611322,-646.9898546663296],"color":"d9c095","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[275.0467233068771,-672.5119992025877],"color":"F0C7AF","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[186.05173176850008,-640.5119992025877],"color":"CcB68a","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[147.46308473606837,-641.7509269344587],"color":"6B5841","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[28.481423052738137,-640.5119992025877],"color":"D9B28B","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-806.9146840433768,-670.3616496157489],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-806.9146840433768,-680.2730714707167],"color":"CcB68a","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-1070.4343663875732,-632.1844933256846],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-1070.4343663875732,-642.0959151806524],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-1055.963623750411,-613.6005773476198],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-1055.963623750411,-623.5119992025877],"color":"fae7d4","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-1001.0437748961838,-628.6005773476198],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-1001.0437748961838,-638.5119992025877],"color":"6B5841","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-1027.0796161152439,-652.8395050794909],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-1027.0796161152439,-662.7509269344587],"color":"6B5841","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":0.1,"pos":[-1666,-550],"color":"cf1515","cMask":["c0"],"_data":{"mirror":{}},"_selected":true},{"radius":0.1,"pos":[-1666,550],"color":"cf1515","cMask":["c0"]},{"radius":0.1,"pos":[1666,-550],"color":"0414c7","cMask":["c0"]},{"radius":0.1,"pos":[1666,550],"color":"0414c7","cMask":["c0"]}],"planes":[{"normal":[0,-1],"dist":-580,"bCoef":0,"trait":"ballArea","_data":{"extremes":{"normal":[0,-1],"dist":-580,"canvas_rect":[-1666,-1558,1666,700],"a":[-1666,580],"b":[1666,580]}}},{"normal":[0,-1],"dist":-610,"bCoef":0,"_data":{"extremes":{"normal":[0,-1],"dist":-610,"canvas_rect":[-1666,-1558,1666,700],"a":[-1666,610],"b":[1666,610]}}},{"normal":[1,0],"dist":-1300,"bCoef":0,"_data":{"extremes":{"normal":[1,0],"dist":-1300,"canvas_rect":[-1666,-1558,1666,700],"a":[-1300,-1558],"b":[-1300,700]}}},{"normal":[-1,0],"dist":-1300,"bCoef":0.1,"_data":{"extremes":{"normal":[-1,0],"dist":-1300,"canvas_rect":[-1666,-1558,1666,700],"a":[1300,-1558],"b":[1300,700]}}},{"normal":[1,0],"dist":-1211,"bCoef":0,"cMask":["ball"],"_data":{"extremes":{"normal":[1,0],"dist":-1211,"canvas_rect":[-1666,-1558,1666,700],"a":[-1211,-1558],"b":[-1211,700]}}},{"normal":[-1,0],"dist":-1210,"bCoef":0,"cMask":["ball"],"_data":{"extremes":{"normal":[-1,0],"dist":-1210,"canvas_rect":[-1666,-1558,1666,700],"a":[1210,-1558],"b":[1210,700]}}},{"normal":[0,1],"dist":-580,"bCoef":0,"cMask":["ball"],"trait":"ballArea","_data":{"extremes":{"normal":[0,1],"dist":-580,"canvas_rect":[-1666,-1558,1666,700],"a":[-1666,-580],"b":[1666,-580]}}}],"traits":{"ballArea":{"vis":false,"bCoef":0,"cMask":["ball"]},"goalPost":{"radius":5,"invMass":0,"bCoef":2},"stanchion":{"radius":3,"invMass":0,"bCoef":3,"cMask":["none"]},"cornerflag":{"radius":3,"invMass":0,"bCoef":0.5,"color":"FFFF00","cGroup":[]},"reargoalNetleft":{"vis":true,"bCoef":0.1,"cMask":["ball","red","blue"],"curve":10,"color":"C7E6BD"},"reargoalNetright":{"vis":true,"bCoef":0.1,"cMask":["ball","red","blue"],"curve":-10,"color":"C7E6BD"},"sidegoalNet":{"vis":true,"bCoef":1,"cMask":["ball","red","blue"],"color":"C7E6BD"},"kickOffBarrier":{"vis":false,"bCoef":0.1,"cGroup":["redKO","blueKO"],"cMask":["red","blue"]},"line":{"vis":true,"cMask":[],"color":"C7E6BD"},"tunnel":{"vis":true,"cMask":["red","blue"],"color":"000000"},"advertising":{"vis":true,"cMask":["red","blue"],"color":"333333"},"teambench":{"vis":true,"cMask":[],"color":"000000"},"manager":{"radius":15,"vis":true,"cMask":["red","blue"],"invMass":0,"color":"333333"},"physio":{"radius":15,"vis":true,"cMask":["red","blue"],"invMass":0,"color":"666666"},"redsubs":{"radius":15,"vis":true,"cMask":["red","blue"],"invMass":0,"color":"E56E56"},"bluesubs":{"radius":15,"vis":true,"cMask":["red","blue"],"invMass":0,"color":"5689E5"}},"joints":[{"d0":167,"d1":168,"strength":"rigid","color":"cf1515","length":null},{"d0":169,"d1":170,"strength":"rigid","color":"0414c7","length":null}],"redSpawnPoints":[],"blueSpawnPoints":[],"canBeStored":false}`, RsVs4Yayli: `{"name":"#PS|RS V4|Yaylı|by Poşet","width":1300,"height":700,"spawnDistance":700,"bg":{"type":"grass","color":"3A545E","width":1150,"height":550,"kickOffRadius":180,"cornerRadius":0},"playerPhysics":{"bCoef":0.5,"invMass":0.5,"damping":0.96,"acceleration":0.12,"kickingAcceleration":0.07,"kickingDamping":0.96,"kickStrength":5.65},"ballPhysics":{"radius":8,"bCoef":0.5,"invMass":1,"damping":0.99,"color":"FFFFFF","cMask":["all"],"cGroup":["ball"]},"vertexes":[{"x":0,"y":660,"trait":"kickOffBarrier"},{"x":0,"y":180,"trait":"kickOffBarrier"},{"x":0,"y":-180,"trait":"kickOffBarrier"},{"x":0,"y":-1558,"trait":"kickOffBarrier"},{"x":1150,"y":250,"trait":"line"},{"x":840,"y":250,"trait":"line"},{"x":1150,"y":-250,"trait":"line"},{"x":840,"y":-250,"trait":"line"},{"x":1150,"y":150,"trait":"line"},{"x":1030,"y":150,"trait":"line"},{"x":1150,"y":-150,"trait":"line"},{"x":1030,"y":-150,"trait":"line"},{"x":840,"y":-130,"trait":"line","curve":-130},{"x":840,"y":130,"trait":"line","curve":-130},{"x":-1150,"y":-250,"trait":"line"},{"x":-840,"y":-250,"trait":"line"},{"x":-1150,"y":250,"trait":"line"},{"x":-840,"y":250,"trait":"line"},{"x":-1150,"y":-150,"trait":"line"},{"x":-1030,"y":-150,"trait":"line"},{"x":-1150,"y":150,"trait":"line"},{"x":-1030,"y":150,"trait":"line"},{"x":-840,"y":130,"trait":"line","curve":-130},{"x":-840,"y":-130,"trait":"line","curve":-130},{"x":935,"y":4,"trait":"line"},{"x":935,"y":-4,"trait":"line"},{"x":-935,"y":4,"trait":"line"},{"x":-935,"y":-4,"trait":"line"},{"x":-1150,"y":525,"bCoef":0,"cMask":["wall"],"trait":"line"},{"x":-1125,"y":550,"bCoef":0,"cMask":["wall"],"trait":"line"},{"x":-1125,"y":-550,"bCoef":0,"cMask":["wall"],"trait":"line"},{"x":-1150,"y":-525,"bCoef":0,"cMask":["wall"],"trait":"line"},{"x":1125,"y":550,"bCoef":0,"cMask":["wall"],"trait":"line"},{"x":1150,"y":525,"bCoef":0,"cMask":["wall"],"trait":"line"},{"x":1150,"y":-525,"bCoef":0,"cMask":["wall"],"trait":"line"},{"x":1125,"y":-550,"bCoef":0,"cMask":["wall"],"trait":"line","curve":0},{"x":-1150,"y":112,"trait":"line","color":"ffffff"},{"x":-1210,"y":110,"trait":"line","color":"ffffff"},{"x":-1150,"y":-112,"trait":"line","color":"ffffff"},{"x":-1210,"y":-110,"trait":"line","color":"ffffff"},{"x":1150,"y":112,"trait":"line","color":"ffffff"},{"x":1210,"y":110,"trait":"line","color":"ffffff"},{"x":1150,"y":-112,"trait":"line","color":"ffffff"},{"x":1210,"y":-110,"trait":"line","color":"ffffff"},{"x":0,"y":-4,"trait":"line"},{"x":0,"y":4,"trait":"line"},{"x":0,"y":-4,"trait":"line"},{"x":0,"y":4,"trait":"line"},{"x":-1210,"y":110,"trait":"line","color":"ffffff"},{"x":-1250,"y":150,"trait":"line","color":"ffffff","pos":[-1250,150]},{"x":-1210,"y":-110,"trait":"line","color":"ffffff"},{"x":-1250,"y":-150,"trait":"line","color":"ffffff","pos":[-1250,-150]},{"x":1210,"y":110,"trait":"line","color":"ffffff"},{"x":1250,"y":150,"trait":"line","color":"ffffff"},{"x":1210,"y":-110,"trait":"line","color":"ffffff"},{"x":1250,"y":-150,"trait":"line","color":"ffffff"},{"x":176,"y":35,"bCoef":0.1,"cMask":["red","blue"],"cGroup":["redKO","blueKO"],"trait":"kickOffBarrier","curve":-160.5},{"x":-176,"y":35,"bCoef":0.1,"cMask":["red","blue"],"cGroup":["redKO","blueKO"],"trait":"kickOffBarrier","curve":-160.5},{"x":173,"y":-50,"bCoef":0.1,"cMask":["red","blue"],"cGroup":["redKO","blueKO"],"trait":"kickOffBarrier","curve":154},{"x":-173,"y":-50,"bCoef":0.1,"cMask":["red","blue"],"cGroup":["redKO","blueKO"],"trait":"kickOffBarrier","curve":154},{"x":173,"y":-50,"bCoef":0.1,"cMask":["red","blue"],"cGroup":["redKO"],"trait":"kickOffBarrier","curve":0},{"x":176,"y":35,"bCoef":0.1,"cMask":["red","blue"],"cGroup":["redKO"],"trait":"kickOffBarrier","curve":0},{"x":-173,"y":-50,"bCoef":0.1,"cMask":["red","blue"],"cGroup":["blueKO"],"trait":"kickOffBarrier","curve":0},{"x":-176,"y":36,"bCoef":0.1,"cMask":["red","blue"],"cGroup":["blueKO"],"trait":"kickOffBarrier","curve":0},{"x":-1170,"y":150,"bCoef":-4.5,"cMask":["ball"],"trait":"line","curve":40,"color":"576C46"},{"x":-1170,"y":250,"bCoef":-4.5,"cMask":["ball"],"trait":"line","curve":40,"color":"576C46"},{"x":1170,"y":150,"bCoef":-4.5,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":1170,"y":250,"bCoef":-4.5,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":-1170,"y":-150,"bCoef":-4.5,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":-1170,"y":-250,"bCoef":-4.5,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":1170,"y":-150,"bCoef":-4.5,"cMask":["ball"],"trait":"line","curve":40,"color":"576C46"},{"x":1170,"y":-250,"bCoef":-4.5,"cMask":["ball"],"trait":"line","curve":40,"color":"576C46"},{"x":1162,"y":-550,"bCoef":-2.45,"cMask":["ball"],"trait":"line","curve":-60,"color":"576C46"},{"x":1190,"y":-530,"bCoef":-2.45,"cMask":["ball"],"trait":"line","curve":-60,"color":"576C46"},{"x":1162,"y":550,"bCoef":-2.45,"cMask":["ball"],"trait":"line","curve":60,"color":"576C46"},{"x":1190,"y":530,"bCoef":-2.45,"cMask":["ball"],"trait":"line","curve":60,"color":"576C46"},{"x":-1162,"y":550,"bCoef":-2.45,"cMask":["ball"],"trait":"line","curve":-60,"color":"576C46"},{"x":-1190,"y":530,"bCoef":-2.45,"cMask":["ball"],"trait":"line","curve":-60,"color":"576C46"},{"x":-1162,"y":-550,"bCoef":-2.45,"cMask":["ball"],"trait":"line","curve":60,"color":"576C46"},{"x":-1190,"y":-530,"bCoef":-2.45,"cMask":["ball"],"trait":"line","curve":60,"color":"576C46"},{"x":-1177,"y":-250,"bCoef":0,"cMask":["ball"]},{"x":-1177,"y":-150,"cMask":["ball"]},{"x":-1170,"y":250,"bCoef":-5,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":-1177,"y":250,"bCoef":0,"cMask":["ball"]},{"x":-1170,"y":150,"bCoef":-5,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":-1177,"y":150,"cMask":["ball"]},{"x":1177,"y":-250,"bCoef":0,"cMask":["ball"]},{"x":1177,"y":-150,"cMask":["ball"]},{"x":1170,"y":-150,"bCoef":-5,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":1170,"y":-250,"bCoef":-5,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":1177,"y":250,"bCoef":0,"cMask":["ball"]},{"x":1177,"y":150,"cMask":["ball"]},{"x":1170,"y":250,"bCoef":-5,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":1170,"y":150,"bCoef":-5,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":-820,"y":-550,"trait":"line","curve":90,"color":"5E844D"},{"x":-1150,"y":-260,"trait":"line","curve":90,"color":"5E844D"},{"x":-1150,"y":260,"trait":"line"},{"x":-820,"y":550,"trait":"line"},{"x":820,"y":550,"trait":"line"},{"x":1150,"y":260,"trait":"line"},{"x":820,"y":-550,"trait":"line","curve":-90},{"x":1150,"y":-260,"trait":"line","curve":-90},{"x":1150,"y":-475,"bCoef":0,"cMask":["wall"],"trait":"line","curve":0},{"x":-1150,"y":-475,"bCoef":0,"cMask":["wall"],"trait":"line","curve":0},{"x":1150,"y":475,"bCoef":0,"cMask":["wall"],"trait":"line","curve":0},{"x":-1150,"y":475,"bCoef":0,"cMask":["wall"],"trait":"line","curve":0},{"x":-855.1288660502055,"y":-695,"trait":"line","curve":10,"color":"333333"},{"x":855.3501325895497,"y":-695,"trait":"line","curve":10,"color":"333333"},{"x":-947.7041110574957,"y":-615,"trait":"line","color":"1F1F1F"},{"x":948.3579655833855,"y":-615,"trait":"line","color":"1F1F1F"},{"x":1109.2831521018452,"y":-592,"trait":"line","color":"1F1F1F"},{"x":-1103.438162526973,"y":-594,"trait":"line","color":"1F1F1F"},{"x":-1103.438162526973,"y":-596,"trait":"line","color":"292929"},{"x":-947.7041110574957,"y":-617,"trait":"line","color":"292929"},{"x":948.3579655833855,"y":-617,"trait":"line","color":"292929"},{"x":1109.2831521018452,"y":-594,"trait":"line","color":"292929"},{"x":-1061.9090821351122,"y":-681,"trait":"line","curve":10,"color":"333333"},{"x":1069.0518554722303,"y":-681,"trait":"line","curve":10,"color":"333333"},{"x":-8.314822249282088,"y":-694.984375,"trait":"line","color":"002033"},{"x":-9.61260601152776,"y":-617.984375,"trait":"line","color":"002033"},{"x":11.151934184402762,"y":-694.984375,"trait":"line","color":"002033"},{"x":11.151934184402762,"y":-617.984375,"trait":"line","color":"002033"},{"x":299.25992940293486,"y":-694.984375,"trait":"line","color":"002033"},{"x":282.3887404937416,"y":-617.984375,"trait":"line","color":"002033"},{"x":318.7266858366197,"y":-694.984375,"trait":"line","color":"002033"},{"x":303.15328068967165,"y":-617.984375,"trait":"line","color":"002033"},{"x":-650.7177845608744,"y":-694.984375,"trait":"line","color":"002033"},{"x":-620.8687580292244,"y":-617.984375,"trait":"line","color":"002033"},{"x":-629.953244364944,"y":-694.984375,"trait":"line","color":"002033"},{"x":-598.8064340710488,"y":-617.984375,"trait":"line","color":"002033"},{"x":-1008.9061029406712,"y":-686.984375,"trait":"line","color":"002033"},{"x":-956.9947524508457,"y":-614.984375,"trait":"line","color":"002033"},{"x":-986.8437789824953,"y":-688.984375,"trait":"line","color":"002033"},{"x":-936.2302122549153,"y":-617.984375,"trait":"line","color":"002033"},{"x":-293.25772691777706,"y":-694.984375,"trait":"line","color":"002033"},{"x":-276.38653800858344,"y":-617.984375,"trait":"line","color":"002033"},{"x":-312.7244833514616,"y":-694.984375,"trait":"line","color":"002033"},{"x":-297.15107820451396,"y":-617.984375,"trait":"line","color":"002033"},{"x":642.892785833513,"y":-694.984375,"trait":"line","color":"002033"},{"x":613.0437593018632,"y":-617.984375,"trait":"line","color":"002033"},{"x":622.1282456375825,"y":-694.984375,"trait":"line","color":"002033"},{"x":590.9814353436873,"y":-617.984375,"trait":"line","color":"002033"},{"x":1010.4251532422609,"y":-686.984375,"trait":"line","color":"002033"},{"x":958.5138027524354,"y":-614.984375,"trait":"line","color":"002033"},{"x":988.3628292840854,"y":-688.984375,"trait":"line","color":"002033"},{"x":937.7492625565051,"y":-617.984375,"trait":"line","color":"002033"},{"x":-855.1288660502055,"y":-697,"trait":"line","curve":10,"color":"404040"},{"x":855.3501325895497,"y":-697,"trait":"line","curve":10,"color":"404040"},{"x":-1061.9090821351122,"y":-683,"trait":"line","curve":10,"color":"404040"},{"x":1069.0518554722303,"y":-683,"trait":"line","curve":10,"color":"404040"},{"x":-8.454742531540433,"y":-685.8000030517578,"trait":"line"},{"x":11.012013902143963,"y":-685.8000030517578,"trait":"line"},{"x":-8.454742531540433,"y":-674.8000030517578,"trait":"line","color":"004987"},{"x":11.012013902143963,"y":-674.8000030517578,"trait":"line","color":"004987"},{"x":-8.454742531540433,"y":-662.8000030517578,"trait":"line","color":"005094"},{"x":11.012013902143963,"y":-662.8000030517578,"trait":"line","color":"005094"},{"x":-8.454742531540433,"y":-651.8000030517578,"trait":"line","color":"0058A3"},{"x":11.012013902143963,"y":-651.8000030517578,"trait":"line","color":"0058A3"},{"x":-8.454742531540433,"y":-639.8000030517578,"trait":"line","color":"0064BA"},{"x":11.012013902143963,"y":-639.8000030517578,"trait":"line","color":"0064BA"},{"x":-8.454742531540433,"y":-626.8000030517578,"trait":"line","color":"0068C2"},{"x":11.012013902143963,"y":-626.8000030517578,"trait":"line","color":"0068C2"},{"x":-310.8383591347749,"y":-685.8000030517578,"trait":"line"},{"x":-291.37160270109007,"y":-685.8000030517578,"trait":"line"},{"x":-308.24279161028346,"y":-673.8000030517578,"trait":"line","color":"004987"},{"x":-288.77603517659895,"y":-673.8000030517578,"trait":"line","color":"004987"},{"x":-305.64722408579235,"y":-661.8000030517578,"trait":"line","color":"005094"},{"x":-286.1804676521076,"y":-661.8000030517578,"trait":"line","color":"005094"},{"x":-303.05165656130123,"y":-650.8000030517578,"trait":"line","color":"0058A3"},{"x":-283.5849001276164,"y":-650.8000030517578,"trait":"line","color":"0058A3"},{"x":-300.45608903680954,"y":-638.8000030517578,"trait":"line","color":"0064BA"},{"x":-280.98933260312526,"y":-638.8000030517578,"trait":"line","color":"0064BA"},{"x":-299.15830527456376,"y":-627.8000030517578,"trait":"line","color":"0068C2"},{"x":-279.69154884087936,"y":-627.8000030517578,"trait":"line","color":"0068C2"},{"x":297.82222535843084,"y":-686.8000030517578,"trait":"line"},{"x":317.28898179211524,"y":-686.8000030517578,"trait":"line"},{"x":295.2266578339395,"y":-674.8000030517578,"trait":"line","color":"004987"},{"x":314.6934142676241,"y":-674.8000030517578,"trait":"line","color":"004987"},{"x":292.6310903094484,"y":-663.8000030517578,"trait":"line","color":"005094"},{"x":312.0978467431328,"y":-663.8000030517578,"trait":"line","color":"005094"},{"x":290.03552278495727,"y":-650.8000030517578,"trait":"line","color":"0058A3"},{"x":309.50227921864166,"y":-650.8000030517578,"trait":"line","color":"0058A3"},{"x":287.4399552604657,"y":-638.8000030517578,"trait":"line","color":"0064BA"},{"x":306.9067116941503,"y":-638.8000030517578,"trait":"line","color":"0064BA"},{"x":284.84438773597435,"y":-627.8000030517578,"trait":"line","color":"0068C2"},{"x":304.3111441696592,"y":-627.8000030517578,"trait":"line","color":"0068C2"},{"x":619.6725983953497,"y":-684.8000030517578,"trait":"line"},{"x":639.1393548290346,"y":-684.8000030517578,"trait":"line"},{"x":614.4814633463673,"y":-673.8000030517578,"trait":"line","color":"004987"},{"x":633.9482197800517,"y":-673.8000030517578,"trait":"line","color":"004987"},{"x":610.5881120596305,"y":-662.8000030517578,"trait":"line","color":"005094"},{"x":630.0548684933149,"y":-662.8000030517578,"trait":"line","color":"005094"},{"x":605.3969770106478,"y":-650.8000030517578,"trait":"line","color":"0058A3"},{"x":624.8637334443324,"y":-650.8000030517578,"trait":"line","color":"0058A3"},{"x":601.503625723911,"y":-639.8000030517578,"trait":"line","color":"0064BA"},{"x":620.9703821575954,"y":-639.8000030517578,"trait":"line","color":"0064BA"},{"x":596.3124906749281,"y":-627.8000030517578,"trait":"line","color":"0068C2"},{"x":615.7792471086129,"y":-627.8000030517578,"trait":"line","color":"0068C2"},{"x":-645.6665697941501,"y":-684.8000030517578,"trait":"line"},{"x":-626.1998133604656,"y":-684.8000030517578,"trait":"line"},{"x":-641.7732185074132,"y":-673.8000030517578,"trait":"line","color":"004987"},{"x":-622.3064620737287,"y":-673.8000030517578,"trait":"line","color":"004987"},{"x":-636.5820834584306,"y":-661.8000030517578,"trait":"line","color":"005094"},{"x":-617.1153270247462,"y":-661.8000030517578,"trait":"line","color":"005094"},{"x":-631.3909484094484,"y":-650.8000030517578,"trait":"line","color":"0058A3"},{"x":-611.9241919757636,"y":-650.8000030517578,"trait":"line","color":"0058A3"},{"x":-627.497597122711,"y":-639.8000030517578,"trait":"line","color":"0064BA"},{"x":-608.0308406890267,"y":-639.8000030517578,"trait":"line","color":"0064BA"},{"x":-622.3064620737287,"y":-627.8000030517578,"trait":"line","color":"0068C2"},{"x":-602.8397056400439,"y":-627.8000030517578,"trait":"line","color":"0068C2"},{"x":-1002.5571044117016,"y":-680.8000030517578,"trait":"line"},{"x":-983.0903479780168,"y":-680.8000030517578,"trait":"line"},{"x":-994.7704018382276,"y":-669.8000030517578,"trait":"line","color":"004987"},{"x":-975.3036454045429,"y":-669.8000030517578,"trait":"line","color":"004987"},{"x":-985.6859155025082,"y":-658.8000030517578,"trait":"line","color":"005094"},{"x":-966.2191590688235,"y":-658.8000030517578,"trait":"line","color":"005094"},{"x":-977.8992129290343,"y":-646.8000030517578,"trait":"line","color":"0058A3"},{"x":-958.4324564953498,"y":-646.8000030517578,"trait":"line","color":"0058A3"},{"x":-968.8147265933146,"y":-634.8000030517578,"trait":"line","color":"0064BA"},{"x":-949.3479701596301,"y":-634.8000030517578,"trait":"line","color":"0064BA"},{"x":-961.0280240198409,"y":-623.8000030517578,"trait":"line","color":"0068C2"},{"x":-941.5612675861564,"y":-623.8000030517578,"trait":"line","color":"0068C2"},{"x":984.3498355863749,"y":-680.8000030517578,"trait":"line"},{"x":1003.8165920200599,"y":-680.8000030517578,"trait":"line"},{"x":976.5631330129008,"y":-669.8000030517578,"trait":"line","color":"004987"},{"x":996.0298894465855,"y":-669.8000030517578,"trait":"line","color":"004987"},{"x":968.7764304394273,"y":-658.8000030517578,"trait":"line","color":"005094"},{"x":988.2431868731119,"y":-658.8000030517578,"trait":"line","color":"005094"},{"x":960.9897278659532,"y":-647.8000030517578,"trait":"line","color":"0058A3"},{"x":980.4564842996379,"y":-647.8000030517578,"trait":"line","color":"0058A3"},{"x":953.2030252924797,"y":-636.8000030517578,"trait":"line","color":"0064BA"},{"x":972.6697817261643,"y":-636.8000030517578,"trait":"line","color":"0064BA"},{"x":945.4163227190056,"y":-626.8000030517578,"trait":"line","color":"0068C2"},{"x":964.8830791526902,"y":-626.8000030517578,"trait":"line","color":"0068C2"},{"x":-1062.255157475001,"y":-629.8000030517578,"trait":"line","color":"0058A3"},{"x":-1053.1706711392812,"y":-617.8000030517578,"trait":"line","color":"0064BA"},{"x":-1063.7836564802883,"y":-685.2118072509766,"trait":"line"},{"x":1107.985378240904,"y":-593,"trait":"line","color":"1F1F1F"},{"x":1107.985378240904,"y":-595,"trait":"line","color":"292929"},{"x":1066.4562978490435,"y":-680,"trait":"line","curve":10,"color":"333333"},{"x":1066.4562978490435,"y":-682,"trait":"line","curve":10,"color":"404040"},{"x":1068.3308721942194,"y":-684.2118072509766,"trait":"line"},{"x":-742,"y":39.22221374511719,"bCoef":-3,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":-743,"y":-38.77778625488281,"bCoef":-3,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":-851.1306971277922,"y":293.89376217442805,"bCoef":-3,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":-798.0943959552943,"y":236.69104582336564,"bCoef":-3,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":-797.6685405078478,"y":-241.56279759988428,"bCoef":-3,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":-850.781843670732,"y":-298.69402397502483,"bCoef":-3,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":739,"y":33,"bCoef":-3,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":738,"y":-45,"bCoef":-3,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":851.1628103486075,"y":290.6274205942262,"bCoef":-3,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":798.6878973070253,"y":232.9092821862838,"bCoef":-3,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":798.6644781282787,"y":-238.95342498029822,"bCoef":-3,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"},{"x":858.4011078841439,"y":-289.1185031264618,"bCoef":-3,"cMask":["ball"],"trait":"line","curve":-40,"color":"576C46"}],"segments":[{"v0":37,"v1":39,"color":"ffffff","trait":"reargoalNetleft","x":-1210},{"v0":41,"v1":43,"color":"ffffff","trait":"reargoalNetright"},{"v0":0,"v1":1,"trait":"kickOffBarrier"},{"v0":2,"v1":3,"trait":"kickOffBarrier"},{"v0":4,"v1":5,"trait":"line","y":250},{"v0":5,"v1":7,"trait":"line","x":840},{"v0":6,"v1":7,"trait":"line","y":-250},{"v0":8,"v1":9,"trait":"line","y":150},{"v0":9,"v1":11,"trait":"line","x":1030},{"v0":10,"v1":11,"trait":"line","y":-150},{"v0":12,"v1":13,"curve":-130,"trait":"line","x":840},{"v0":14,"v1":15,"trait":"line","y":-250},{"v0":15,"v1":17,"trait":"line","x":-840},{"v0":16,"v1":17,"trait":"line","y":250},{"v0":18,"v1":19,"trait":"line","y":-150},{"v0":19,"v1":21,"trait":"line","x":-1030},{"v0":20,"v1":21,"trait":"line","y":150},{"v0":22,"v1":23,"curve":-130,"trait":"line","x":-840},{"v0":24,"v1":25,"curve":-180,"trait":"line","x":935},{"v0":26,"v1":27,"curve":-180,"trait":"line","x":-935},{"v0":24,"v1":25,"curve":180,"trait":"line","x":935},{"v0":26,"v1":27,"curve":180,"trait":"line","x":-935},{"v0":24,"v1":25,"curve":90,"trait":"line","x":935},{"v0":26,"v1":27,"curve":90,"trait":"line","x":-935},{"v0":24,"v1":25,"curve":-90,"trait":"line","x":935},{"v0":26,"v1":27,"curve":-90,"trait":"line","x":-935},{"v0":24,"v1":25,"trait":"line","x":935},{"v0":26,"v1":27,"trait":"line","x":-935},{"v0":28,"v1":29,"curve":90,"bCoef":0,"cMask":["wall"],"trait":"line"},{"v0":30,"v1":31,"curve":90,"bCoef":0,"cMask":["wall"],"trait":"line"},{"v0":32,"v1":33,"curve":90,"bCoef":0,"cMask":["wall"],"trait":"line"},{"v0":34,"v1":35,"curve":90,"bCoef":0,"cMask":["wall"],"trait":"line"},{"v0":36,"v1":37,"curve":5,"color":"ffffff","trait":"sidegoalNet"},{"v0":38,"v1":39,"curve":-5,"color":"ffffff","trait":"sidegoalNet"},{"v0":40,"v1":41,"curve":-5,"color":"ffffff","trait":"sidegoalNet"},{"v0":42,"v1":43,"curve":5,"color":"ffffff","trait":"sidegoalNet"},{"v0":44,"v1":45,"curve":-180,"trait":"line"},{"v0":46,"v1":47,"curve":180,"trait":"line"},{"v0":44,"v1":45,"curve":-90,"trait":"line"},{"v0":46,"v1":47,"curve":90,"trait":"line"},{"v0":48,"v1":49,"color":"ffffff","trait":"line"},{"v0":50,"v1":51,"color":"ffffff","trait":"line"},{"v0":52,"v1":53,"color":"ffffff","trait":"line"},{"v0":54,"v1":55,"color":"ffffff","trait":"line"},{"v0":57,"v1":56,"curve":-158.308949469,"vis":false,"bCoef":0.1,"cMask":["red","blue"],"cGroup":["redKO","blueKO"],"trait":"kickOffBarrier"},{"v0":59,"v1":58,"curve":147.976007629,"vis":false,"bCoef":0.1,"cMask":["red","blue"],"cGroup":["redKO","blueKO"],"trait":"kickOffBarrier"},{"v0":60,"v1":61,"curve":24.0445533724,"vis":false,"bCoef":0.1,"cMask":["red","blue"],"cGroup":["redKO"],"trait":"kickOffBarrier","x":200},{"v0":62,"v1":63,"curve":-21.4653291133,"vis":false,"bCoef":0.1,"cMask":["red","blue"],"cGroup":["blueKO"],"trait":"kickOffBarrier","x":-200},{"v0":64,"v1":65,"curve":40,"vis":true,"color":"576C46","bCoef":-4.7,"cMask":["ball"],"trait":"line","x":-1220},{"v0":66,"v1":67,"curve":-40,"vis":true,"color":"576C46","bCoef":-4.7,"cMask":["ball"],"trait":"line","x":1220},{"v0":68,"v1":69,"curve":-40,"vis":true,"color":"576C46","bCoef":-4.7,"cMask":["ball"],"trait":"line","x":-1220},{"v0":70,"v1":71,"curve":40,"vis":true,"color":"576C46","bCoef":-4.7,"cMask":["ball"],"trait":"line","x":1220},{"v0":72,"v1":73,"curve":-60,"vis":true,"color":"576C46","bCoef":-2.45,"cMask":["ball"],"trait":"line"},{"v0":74,"v1":75,"curve":60,"vis":true,"color":"576C46","bCoef":-2.45,"cMask":["ball"],"trait":"line"},{"v0":76,"v1":77,"curve":-60,"vis":true,"color":"576C46","bCoef":-2.45,"cMask":["ball"],"trait":"line"},{"v0":78,"v1":79,"curve":60,"vis":true,"color":"576C46","bCoef":-2.45,"cMask":["ball"],"trait":"line"},{"v0":69,"v1":80,"vis":true,"bCoef":0,"cMask":["ball"]},{"v0":68,"v1":81,"vis":true,"cMask":["ball"]},{"v0":85,"v1":84,"vis":true,"cMask":["ball"]},{"v0":83,"v1":82,"vis":true,"cMask":["ball"]},{"v0":91,"v1":93,"vis":true,"color":"000000","cMask":["ball"]},{"v0":90,"v1":92,"vis":true,"color":"000000","cMask":["ball"]},{"v0":86,"v1":89,"vis":true,"color":"000000","cMask":["ball"]},{"v0":87,"v1":88,"vis":true,"color":"000000","cMask":["ball"]},{"v0":94,"v1":95,"curve":90,"vis":true,"color":"5E844D","trait":"line"},{"v0":96,"v1":97,"curve":90,"vis":true,"color":"5E844D","trait":"line"},{"v0":98,"v1":99,"curve":90,"vis":true,"color":"5E844D","trait":"line"},{"v0":100,"v1":101,"curve":-90,"vis":true,"color":"5E844D","trait":"line"},{"v0":102,"v1":103,"curve":0,"vis":true,"color":"5E844D","bCoef":0,"cMask":["wall"],"trait":"line"},{"v0":104,"v1":105,"curve":0,"vis":true,"color":"5E844D","bCoef":0,"cMask":["wall"],"trait":"line","y":475},{"v0":106,"v1":107,"vis":true,"color":"333333","trait":"line"},{"v0":108,"v1":109,"vis":true,"color":"1F1F1F","trait":"line"},{"v0":109,"v1":110,"vis":true,"color":"1F1F1F","trait":"line"},{"v0":108,"v1":111,"vis":true,"color":"1F1F1F","trait":"line"},{"v0":112,"v1":113,"vis":true,"color":"292929","trait":"line"},{"v0":113,"v1":114,"vis":true,"color":"292929","trait":"line"},{"v0":114,"v1":115,"vis":true,"color":"292929","trait":"line"},{"v0":116,"v1":106,"curve":7.7614582979000035,"vis":true,"color":"333333","trait":"line"},{"v0":107,"v1":117,"curve":7.712742168438823,"vis":true,"color":"333333","trait":"line"},{"v0":118,"v1":119,"color":"002033","trait":"line"},{"v0":120,"v1":121,"color":"002033","trait":"line"},{"v0":122,"v1":123,"color":"002033","trait":"line"},{"v0":124,"v1":125,"color":"002033","trait":"line"},{"v0":126,"v1":127,"color":"002033","trait":"line"},{"v0":128,"v1":129,"color":"002033","trait":"line"},{"v0":130,"v1":131,"color":"002033","trait":"line"},{"v0":132,"v1":133,"color":"002033","trait":"line"},{"v0":134,"v1":135,"color":"002033","trait":"line"},{"v0":136,"v1":137,"color":"002033","trait":"line"},{"v0":138,"v1":139,"color":"002033","trait":"line"},{"v0":140,"v1":141,"color":"002033","trait":"line"},{"v0":142,"v1":143,"color":"002033","trait":"line"},{"v0":144,"v1":145,"color":"002033","trait":"line"},{"v0":146,"v1":147,"vis":true,"color":"404040","trait":"line"},{"v0":148,"v1":146,"curve":7.761458297900168,"vis":true,"color":"404040","trait":"line"},{"v0":147,"v1":149,"curve":7.712742168438773,"vis":true,"color":"404040","trait":"line"},{"v0":150,"v1":151,"color":"004077","trait":"line"},{"v0":152,"v1":153,"color":"004987","trait":"line"},{"v0":154,"v1":155,"color":"005094","trait":"line"},{"v0":156,"v1":157,"color":"0058A3","trait":"line"},{"v0":158,"v1":159,"color":"0064BA","trait":"line"},{"v0":160,"v1":161,"color":"0068C2","trait":"line"},{"v0":162,"v1":163,"color":"004077","trait":"line"},{"v0":164,"v1":165,"color":"004987","trait":"line"},{"v0":166,"v1":167,"color":"005094","trait":"line"},{"v0":168,"v1":169,"color":"0058A3","trait":"line"},{"v0":170,"v1":171,"color":"0064BA","trait":"line"},{"v0":172,"v1":173,"color":"0068C2","trait":"line"},{"v0":174,"v1":175,"color":"004077","trait":"line"},{"v0":176,"v1":177,"color":"004987","trait":"line"},{"v0":178,"v1":179,"color":"005094","trait":"line"},{"v0":180,"v1":181,"color":"0058A3","trait":"line"},{"v0":182,"v1":183,"color":"0064BA","trait":"line"},{"v0":184,"v1":185,"color":"0068C2","trait":"line"},{"v0":186,"v1":187,"color":"004077","trait":"line"},{"v0":188,"v1":189,"color":"004987","trait":"line"},{"v0":190,"v1":191,"color":"005094","trait":"line"},{"v0":192,"v1":193,"color":"0058A3","trait":"line"},{"v0":194,"v1":195,"color":"0064BA","trait":"line"},{"v0":196,"v1":197,"color":"0068C2","trait":"line"},{"v0":198,"v1":199,"color":"004077","trait":"line"},{"v0":200,"v1":201,"color":"004987","trait":"line"},{"v0":202,"v1":203,"color":"005094","trait":"line"},{"v0":204,"v1":205,"color":"0058A3","trait":"line"},{"v0":206,"v1":207,"color":"0064BA","trait":"line"},{"v0":208,"v1":209,"color":"0068C2","trait":"line"},{"v0":210,"v1":211,"color":"004077","trait":"line"},{"v0":212,"v1":213,"color":"004987","trait":"line"},{"v0":214,"v1":215,"color":"005094","trait":"line"},{"v0":216,"v1":217,"color":"0058A3","trait":"line"},{"v0":218,"v1":219,"color":"0064BA","trait":"line"},{"v0":220,"v1":221,"color":"0068C2","trait":"line"},{"v0":222,"v1":223,"color":"004077","trait":"line"},{"v0":224,"v1":225,"color":"004987","trait":"line"},{"v0":226,"v1":227,"color":"005094","trait":"line"},{"v0":228,"v1":229,"color":"0058A3","trait":"line"},{"v0":230,"v1":231,"color":"0064BA","trait":"line"},{"v0":232,"v1":233,"color":"0068C2","trait":"line"},{"v0":112,"v1":148,"curve":12.203296446682453,"vis":true,"color":"404040","trait":"line"},{"v0":112,"v1":236,"curve":20.94268494326163,"vis":true,"color":"292929","trait":"line"},{"v0":238,"v1":240,"curve":-12.20329644668193,"vis":true,"color":"404040","trait":"line"},{"v0":238,"v1":241,"curve":-20.94268494326035,"vis":true,"color":"292929","trait":"line"},{"v0":242,"v1":243,"curve":-0.1626536365474556,"vis":true,"color":"576C46","bCoef":-3,"cMask":["ball"],"trait":"line","x":-1220},{"v0":244,"v1":245,"curve":-0.1626536365474556,"vis":true,"color":"576C46","bCoef":-3,"cMask":["ball"],"trait":"line","x":-1220},{"v0":246,"v1":247,"curve":-0.1626536365474556,"vis":true,"color":"576C46","bCoef":-3,"cMask":["ball"],"trait":"line","x":-1220},{"v0":248,"v1":249,"curve":-0.1626536365474556,"vis":true,"color":"576C46","bCoef":-3,"cMask":["ball"],"trait":"line","x":-1220},{"v0":250,"v1":251,"curve":-0.1626536365474556,"vis":true,"color":"576C46","bCoef":-3,"cMask":["ball"],"trait":"line","x":-1220},{"v0":252,"v1":253,"curve":-0.1626536365474556,"vis":true,"color":"576C46","bCoef":-3,"cMask":["ball"],"trait":"line","x":-1220}],"goals":[{"p0":[-1163,110],"p1":[-1163,-110],"team":"red"},{"p0":[1163,110],"p1":[1163,-110],"team":"blue"}],"discs":[{"pos":[-1150,110],"trait":"goalPost"},{"pos":[-1150,-110],"trait":"goalPost"},{"pos":[1150,110],"trait":"goalPost"},{"pos":[1150,-110],"trait":"goalPost"},{"pos":[-1250,150],"trait":"stanchion"},{"pos":[-1250,-150],"trait":"stanchion"},{"pos":[1250,150],"trait":"stanchion","x":1250},{"pos":[1250,-150],"trait":"stanchion","x":1250},{"pos":[-1150,-550],"trait":"cornerflag"},{"pos":[-1150,550],"trait":"cornerflag"},{"pos":[1150,-550],"trait":"cornerflag"},{"pos":[1150,550],"trait":"cornerflag"},{"radius":9.174037242580487,"invMass":0,"pos":[-849.4102969350783,-647.9455655938135],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-849.4102969350783,-657.8569874487814],"color":"D9B28B","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-902.4333836971477,-655.3616496157489],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-929.7670086784532,-656.6005773476198],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-929.7670086784532,-666.5119992025877],"color":"fae7d4","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-870.3124807443116,-631.8395050794909],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-870.3124807443116,-641.7509269344587],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-887.9626410599858,-670.2287823982006],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-887.9626410599858,-680.1402042531685],"color":"d9c095","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":12.702513105111443,"invMass":0,"pos":[-804.3902087305747,-633.0784328113618],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-804.3902087305747,-642.9898546663296],"color":"CcB68a","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-902.4333836971477,-665.2730714707167],"color":"F0C7AF","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[831.3396545217147,-647.9455655938135],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[831.3396545217147,-657.8569874487814],"color":"D9B28B","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[1054.2922481638166,-619.3616496157489],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[752.5756748954666,-667.1844933256846],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[752.5756748954666,-676.0959151806524],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[890.8304853633799,-630.6005773476198],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[890.8304853633799,-640.5119992025877],"color":"6B5841","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[791.3594431803579,-666.6005773476198],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[918.1641103446859,-631.8395050794909],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[918.1641103446859,-641.7509269344587],"color":"6B5841","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[754.6645310333679,-637.6005773476198],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[754.6645310333679,-647.5119992025877],"color":"fae7d4","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[1013.9354088900727,-632.6005773476198],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[1013.9354088900727,-643.5119992025877],"color":"F0C7AF","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[852.2418383309484,-631.8395050794909],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[852.2418383309484,-641.7509269344587],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[1067.1551305079602,-634.2287823982006],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[1067.1551305079602,-644.1402042531685],"color":"d9c095","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[895.1367674900275,-667.6005773476198],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":12.702513105111443,"invMass":0,"pos":[786.3195663172116,-633.0784328113618],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[786.3195663172116,-642.9898546663296],"color":"CcB68a","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[895.1367674900275,-679.5119992025877],"color":"fae7d4","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[791.3594431803579,-676.5119992025877],"color":"CcB68a","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[1054.2922481638166,-629.2730714707167],"color":"6B5841","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":12.702513105111443,"invMass":0,"pos":[-725.605054372694,-633.0784328113618],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":12.702513105111443,"invMass":0,"pos":[-688.6242676332802,-633.0784328113618],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":12.702513105111443,"invMass":0,"pos":[-402.4251354760802,-631.8395050794909],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-761.1973040098977,-664.8395050794909],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-372.76971659353205,-668.3616496157489],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-372.76971659353205,-677.2730714707167],"color":"6B5841","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-436.1902016294579,-630.6005773476198],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-534.2696795035542,-630.6005773476198],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-534.2696795035542,-640.5119992025877],"color":"D9B28B","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-500.5046133501768,-630.6005773476198],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-420.11159869927803,-651.6623487894265],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-487.64173100603296,-650.4234210575555],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-487.64173100603296,-660.3348429125233],"color":"fae7d4","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-580.8976280010756,-647.9455655938135],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-580.8976280010756,-657.8569874487814],"color":"D9B28B","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-643.6041794287769,-650.4234210575555],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-643.6041794287769,-660.3348429125233],"color":"F0C7AF","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-672.5456647031001,-652.9012765212974],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-672.5456647031001,-662.8126983762653],"color":"fae7d4","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-514.9753559873384,-654.1402042531685],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-725.605054372694,-642.9898546663296],"color":"D9B28B","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-688.6242676332802,-642.9898546663296],"color":"d9c095","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-402.4251354760802,-641.7509269344587],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-761.1973040098977,-676.7509269344587],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-436.1902016294579,-640.5119992025877],"color":"CcB68a","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-500.5046133501768,-640.5119992025877],"color":"D9B28B","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-420.11159869927803,-661.5737706443942],"color":"fae7d4","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-514.9753559873384,-664.0516261081362],"color":"D9B28B","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":12.702513105111443,"invMass":0,"pos":[710.9287891410352,-633.0784328113618],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":12.702513105111443,"invMass":0,"pos":[673.948002401622,-633.0784328113618],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":12.702513105111443,"invMass":0,"pos":[387.7488702444218,-631.8395050794909],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[640.1027702740971,-632.8395050794909],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[583.9078259926152,-629.3616496157489],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[583.9078259926152,-639.2730714707167],"color":"6B5841","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[450.45542167212284,-630.6005773476198],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[550.1427598392374,-629.3616496157489],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[485.82834811851853,-630.6005773476198],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[405.4353334676198,-651.6623487894265],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[437.59253932797924,-650.4234210575555],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[691.6344656248198,-651.6623487894265],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[575.6960916100563,-666.9012765212974],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[530.848436323022,-654.1402042531685],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[500.2990907556805,-654.1402042531685],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[710.9287891410352,-642.9898546663296],"color":"D9B28B","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[673.948002401622,-642.9898546663296],"color":"d9c095","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[387.7488702444218,-641.7509269344587],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[641.4005540363428,-642.7509269344587],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[450.45542167212284,-640.5119992025877],"color":"fae7d4","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[550.1427598392374,-639.2730714707167],"color":"6B5841","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[485.82834811851853,-640.5119992025877],"color":"D9B28B","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[437.59253932797924,-660.3348429125233],"color":"6B5841","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[691.6344656248198,-661.5737706443942],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[575.6960916100563,-676.8126983762653],"color":"d9c095","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[405.4353334676198,-661.5737706443942],"color":"fae7d4","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[530.848436323022,-664.0516261081362],"color":"d9c095","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[500.2990907556805,-664.0516261081362],"color":"D9B28B","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":12.702513105111443,"invMass":0,"pos":[-325.247841411217,-633.0784328113618],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-363.1709587121221,-640.6005773476198],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-264.1491502765341,-630.6005773476198],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-264.1491502765341,-640.5119992025877],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-228.77622383013806,-633.0784328113618],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-228.77622383013806,-642.9898546663296],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-156.42251064432946,-631.8395050794909],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-124.26530478396967,-630.6005773476198],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-124.26530478396967,-640.5119992025877],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-93.71595921662833,-630.6005773476198],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-93.71595921662833,-640.5119992025877],"color":"fae7d4","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-63.166613649286774,-631.8395050794909],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-37.44084896099889,-630.6005773476198],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-203.05045914185087,-652.9012765212974],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-203.05045914185087,-662.8126983762653],"color":"F0C7AF","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-117.83386361189787,-654.1402042531685],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-117.83386361189787,-664.0516261081362],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-161.24609152338314,-654.1402042531685],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-161.24609152338314,-664.0516261081362],"color":"d9c095","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-42.264429840053026,-655.3791319850394],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-42.264429840053026,-665.2905538400073],"color":"6B5841","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-262.25390178773455,-673.1402042531685],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-262.25390178773455,-683.0516261081362],"color":"D9B28B","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-325.247841411217,-642.9898546663296],"color":"d9c095","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-363.1709587121221,-650.5119992025877],"color":"F0C7AF","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-156.42251064432946,-641.7509269344587],"color":"6B5841","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-63.166613649286774,-641.7509269344587],"color":"F0C7AF","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-37.44084896099889,-640.5119992025877],"color":"D9B28B","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":12.702513105111443,"invMass":0,"pos":[338.3507394611322,-633.0784328113618],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[273.7489395446314,-662.6005773476198],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[255.18972436827312,-630.6005773476198],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[186.05173176850008,-630.6005773476198],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[147.46308473606837,-631.8395050794909],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[115.30587887570869,-630.6005773476198],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[84.75653330836758,-630.6005773476198],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[28.481423052738137,-630.6005773476198],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[239.11112143809305,-652.9012765212974],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[239.11112143809305,-662.8126983762653],"color":"fae7d4","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[194.09103323359,-652.9012765212974],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[194.09103323359,-662.8126983762653],"color":"F0C7AF","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[108.87443770363666,-654.1402042531685],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[108.87443770363666,-664.0516261081362],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[63.854349499133605,-654.1402042531685],"color":"0080ff","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[63.854349499133605,-664.0516261081362],"color":"6B5841","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[255.18972436827312,-640.5119992025877],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[115.30587887570869,-640.5119992025877],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[84.75653330836758,-640.5119992025877],"color":"fae7d4","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[338.3507394611322,-646.9898546663296],"color":"d9c095","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[275.0467233068771,-672.5119992025877],"color":"F0C7AF","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[186.05173176850008,-640.5119992025877],"color":"CcB68a","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[147.46308473606837,-641.7509269344587],"color":"6B5841","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[28.481423052738137,-640.5119992025877],"color":"D9B28B","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-806.9146840433768,-670.3616496157489],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-806.9146840433768,-680.2730714707167],"color":"CcB68a","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-1070.4343663875732,-632.1844933256846],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-1070.4343663875732,-642.0959151806524],"color":"8B7861","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-1055.963623750411,-613.6005773476198],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-1055.963623750411,-623.5119992025877],"color":"fae7d4","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-1001.0437748961838,-628.6005773476198],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":7.762646897568104,"invMass":0,"pos":[-1001.0437748961838,-638.5119992025877],"color":"6B5841","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":10.585427587592871,"invMass":0,"pos":[-1027.0796161152439,-652.8395050794909],"color":"F50737","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":9.174037242580487,"invMass":0,"pos":[-1027.0796161152439,-662.7509269344587],"color":"6B5841","cMask":["red","blue"],"cGroup":["wall"],"trait":"goalPost"},{"radius":0.1,"pos":[-1666,-550],"color":"cf1515","cMask":["c0"]},{"radius":0.1,"pos":[-1666,550],"color":"cf1515","cMask":["c0"]},{"radius":0.1,"pos":[1666,-550],"color":"0414c7","_selected":true,"cMask":["c0"],"_data":{"mirror":{}}},{"radius":0.1,"pos":[1666,550],"color":"0414c7","_selected":true,"cMask":["c0"],"_data":{"mirror":{}}}],"planes":[{"normal":[0,-1],"dist":-580,"bCoef":0,"trait":"ballArea","_data":{"extremes":{"normal":[0,-1],"dist":-580,"canvas_rect":[-1666,-1558,1666,700],"a":[-1666,580],"b":[1666,580]}}},{"normal":[0,-1],"dist":-610,"bCoef":0,"_data":{"extremes":{"normal":[0,-1],"dist":-610,"canvas_rect":[-1666,-1558,1666,700],"a":[-1666,610],"b":[1666,610]}}},{"normal":[1,0],"dist":-1300,"bCoef":0,"_data":{"extremes":{"normal":[1,0],"dist":-1300,"canvas_rect":[-1666,-1558,1666,700],"a":[-1300,-1558],"b":[-1300,700]}}},{"normal":[-1,0],"dist":-1300,"bCoef":0.1,"_data":{"extremes":{"normal":[-1,0],"dist":-1300,"canvas_rect":[-1666,-1558,1666,700],"a":[1300,-1558],"b":[1300,700]}}},{"normal":[1,0],"dist":-1211,"bCoef":0,"cMask":["ball"],"_data":{"extremes":{"normal":[1,0],"dist":-1211,"canvas_rect":[-1666,-1558,1666,700],"a":[-1211,-1558],"b":[-1211,700]}}},{"normal":[-1,0],"dist":-1210,"bCoef":0,"cMask":["ball"],"_data":{"extremes":{"normal":[-1,0],"dist":-1210,"canvas_rect":[-1666,-1558,1666,700],"a":[1210,-1558],"b":[1210,700]}}},{"normal":[0,1],"dist":-580,"bCoef":0,"cMask":["ball"],"trait":"ballArea","_data":{"extremes":{"normal":[0,1],"dist":-580,"canvas_rect":[-1666,-1558,1666,700],"a":[-1666,-580],"b":[1666,-580]}}}],"traits":{"ballArea":{"vis":false,"bCoef":0,"cMask":["ball"]},"goalPost":{"radius":5,"invMass":0,"bCoef":2},"stanchion":{"radius":3,"invMass":0,"bCoef":3,"cMask":["none"]},"cornerflag":{"radius":3,"invMass":0,"bCoef":0.5,"color":"FFFF00","cGroup":[]},"reargoalNetleft":{"vis":true,"bCoef":0.1,"cMask":["ball","red","blue"],"curve":10,"color":"C7E6BD"},"reargoalNetright":{"vis":true,"bCoef":0.1,"cMask":["ball","red","blue"],"curve":-10,"color":"C7E6BD"},"sidegoalNet":{"vis":true,"bCoef":1,"cMask":["ball","red","blue"],"color":"C7E6BD"},"kickOffBarrier":{"vis":false,"bCoef":0.1,"cGroup":["redKO","blueKO"],"cMask":["red","blue"]},"line":{"vis":true,"cMask":[],"color":"C7E6BD"},"tunnel":{"vis":true,"cMask":["red","blue"],"color":"000000"},"advertising":{"vis":true,"cMask":["red","blue"],"color":"333333"},"teambench":{"vis":true,"cMask":[],"color":"000000"},"manager":{"radius":15,"vis":true,"cMask":["red","blue"],"invMass":0,"color":"333333"},"physio":{"radius":15,"vis":true,"cMask":["red","blue"],"invMass":0,"color":"666666"},"redsubs":{"radius":15,"vis":true,"cMask":["red","blue"],"invMass":0,"color":"E56E56"},"bluesubs":{"radius":15,"vis":true,"cMask":["red","blue"],"invMass":0,"color":"5689E5"}},"joints":[{"d0":167,"d1":168,"strength":"rigid","color":"cf1515","length":null},{"d0":169,"d1":170,"strength":"rigid","color":"0414c7","length":null}],"redSpawnPoints":[],"blueSpawnPoints":[],"canBeStored":false}`, Dizilim: `{"name":"HCL v7 Dizilim","width":470,"height":500,"canBeStored":false,"bg":{"type":"hockey","width":280,"height":180,"cornerRadius":0},"vertexes":[{"x":0,"y":-270,"cMask":["red","blue"],"cGroup":["red","blue"]},{"x":0,"y":300.01041793823,"cMask":["red","blue"],"cGroup":["red","blue"]},{"x":-87.3117791226918,"y":34.4585285483644,"cMask":[],"color":"D40000"},{"x":-122.31125205864441,"y":34.65060719246607,"cMask":[],"color":"D40000"},{"x":-84.81181677012376,"y":34.44480864521428,"bCoef":-0.5,"color":"FF6054"},{"x":-124.81121441121246,"y":34.66432709561619,"bCoef":-0.5,"color":"FF6054"},{"x":-89.81174147525985,"y":34.47224845151452,"bCoef":-0.5,"cMask":["red","blue"],"color":"FF6054"},{"x":-119.81128970607637,"y":34.63688728931595,"bCoef":-0.5,"cMask":["red","blue"],"color":"FF6054"},{"x":-178.0672614953416,"y":17.757129213861482,"cMask":[],"color":"D40000"},{"x":-177.32374947132124,"y":52.74923103513163,"cMask":[],"color":"D40000"},{"x":-178.12036949705734,"y":15.257693369485054,"bCoef":-0.5,"color":"FF6054"},{"x":-177.2706414696055,"y":55.24866687950808,"bCoef":-0.5,"color":"FF6054"},{"x":-178.01415349362583,"y":20.25656505823794,"bCoef":-3,"cMask":["red","blue"],"color":"FF6054"},{"x":-177.37685747303698,"y":50.249795190755194,"bCoef":-1,"cMask":["red","blue"],"color":"FF6054"},{"x":-144,"y":-166.5,"cMask":[],"color":"D40000"},{"x":-144,"y":-131.5,"cMask":[],"color":"D40000"},{"x":-144,"y":-169,"bCoef":-0.5,"color":"FF6054"},{"x":-144,"y":-129,"bCoef":-0.5,"color":"FF6054"},{"x":-144,"y":-164,"bCoef":-0.5,"cMask":["red","blue"],"color":"FF6054"},{"x":-144,"y":-134,"bCoef":-0.5,"cMask":["red","blue"],"color":"FF6054"},{"x":-111,"y":27,"cMask":[],"color":"FFFFFF"},{"x":-100,"y":27,"cMask":[],"color":"FFFFFF"},{"x":-100,"y":43,"cMask":[],"color":"FFFFFF"},{"x":-111,"y":43,"cMask":[],"color":"FFFFFF"},{"x":-102.33332824706997,"y":35,"cMask":[],"trait":"redPos3","color":"FFFFFF"},{"x":-109,"y":35,"cMask":[],"color":"FFFFFF"},{"x":-170,"y":27,"cMask":[],"color":"FFFFFF"},{"x":-184,"y":27,"cMask":[],"color":"FFFFFF"},{"x":-184,"y":43,"cMask":[],"color":"FFFFFF"},{"x":-171,"y":43,"cMask":[],"color":"FFFFFF"},{"x":-171,"y":35,"cMask":[],"color":"FFFFFF"},{"x":-184,"y":35,"cMask":[],"color":"FFFFFF"},{"x":-149,"y":-157,"cMask":[],"color":"FFFFFF"},{"x":-139,"y":-157,"cMask":[],"color":"FFFFFF"},{"x":-139,"y":-149,"cMask":[],"trait":"redPos9","color":"FFFFFF"},{"x":-149,"y":-149,"cMask":[],"color":"FFFFFF"},{"x":-139,"y":-141,"cMask":[],"color":"FFFFFF"},{"x":-149,"y":-141,"cMask":[],"color":"FFFFFF"},{"x":-140,"y":-169,"bCoef":-30,"color":"333333"},{"x":-148,"y":-169,"bCoef":-30,"color":"333333"},{"x":-145.45539031039414,"y":-29.147632456102826,"cMask":[],"color":"D40000"},{"x":-147.20320690343038,"y":-64.10396431682739,"cMask":[],"color":"D40000"},{"x":-145.33054626803442,"y":-26.650751608908223,"bCoef":-0.5,"color":"FF6054"},{"x":-147.3280509457901,"y":-66.60084516402202,"bCoef":-0.5,"color":"FF6054"},{"x":-145.5802343527539,"y":-31.644513303297444,"bCoef":-0.5,"cMask":["red","blue"],"color":"FF6054"},{"x":-147.07836286107064,"y":-61.607083469632784,"bCoef":-0.5,"cMask":["red","blue"],"color":"FF6054"},{"x":-143.33332824706997,"y":125,"cMask":[],"color":"FFFFFF"},{"x":-143.33332824706997,"y":141,"cMask":[],"color":"FFFFFF"},{"x":-154,"y":-55,"cMask":[],"color":"FFFFFF"},{"x":-154,"y":-37,"cMask":[],"color":"FFFFFF"},{"x":-148.18182373047,"y":-54,"cMask":[],"color":"FFFFFF"},{"x":-148.18182373047,"y":-38,"cMask":[],"color":"FFFFFF"},{"x":-138,"y":-38,"cMask":[],"color":"FFFFFF"},{"x":-138,"y":-54,"cMask":[],"color":"FFFFFF"},{"x":-182.1194668480596,"y":15.342666172230231,"bCoef":-30,"color":"333333"},{"x":-174.12127214605502,"y":15.17272056673987,"bCoef":-30,"color":"333333"},{"x":-84.78986492508358,"y":38.444748409323154,"bCoef":-30,"color":"333333"},{"x":-84.83376861516393,"y":30.444868881105407,"bCoef":-30,"color":"333333"},{"x":-141.33553691252303,"y":-26.850502076683796,"bCoef":-30,"color":"333333"},{"x":-149.3255556235458,"y":-26.451001141132664,"bCoef":-30,"color":"333333"},{"x":-142.45539031039414,"y":149.7614556786628,"cMask":[],"color":"D40000"},{"x":-144.20320690343038,"y":114.80512381793824,"cMask":[],"color":"D40000"},{"x":-142.33054626803442,"y":152.2583365258574,"bCoef":-0.5,"color":"FF6054"},{"x":-144.3280509457901,"y":112.3082429707436,"bCoef":-0.5,"color":"FF6054"},{"x":-142.5802343527539,"y":147.26457483146817,"bCoef":-0.5,"cMask":["red","blue"],"color":"FF6054"},{"x":-144.07836286107064,"y":117.30200466513284,"bCoef":-0.5,"cMask":["red","blue"],"color":"FF6054"},{"x":-138.33553691252303,"y":152.05858605808183,"bCoef":-30,"color":"333333"},{"x":-146.3255556235458,"y":152.45808699363295,"bCoef":-30,"color":"333333"},{"x":193.6882208773082,"y":34.4585285483644,"cMask":[],"color":"0648CC"},{"x":158.6887479413556,"y":34.65060719246607,"cMask":[],"color":"0648CC"},{"x":196.18818322987624,"y":34.44480864521428,"bCoef":-0.5,"color":"08E6FF"},{"x":156.18878558878754,"y":34.66432709561619,"bCoef":-0.5,"color":"08E6FF"},{"x":191.18825852474015,"y":34.47224845151452,"bCoef":-0.5,"cMask":["red","blue"],"color":"004077"},{"x":161.18871029392363,"y":34.63688728931595,"bCoef":-0.5,"cMask":["red","blue"],"color":"004077"},{"x":101.9327385046584,"y":17.757129213861482,"cMask":[],"color":"0648CC"},{"x":102.67625052867876,"y":52.749231035131636,"cMask":[],"color":"0648CC"},{"x":101.87963050294266,"y":15.25769336948505,"bCoef":-0.5,"color":"08E6FF"},{"x":102.7293585303945,"y":55.248666879508086,"bCoef":-0.5,"color":"08E6FF"},{"x":101.98584650637417,"y":20.256565058237936,"bCoef":-3,"cMask":["red","blue"],"color":"004077"},{"x":102.62314252696302,"y":50.249795190755194,"bCoef":-1,"cMask":["red","blue"],"color":"004077"},{"x":144,"y":-160.5,"cMask":[],"color":"333333"},{"x":144,"y":-125.5,"cMask":[],"color":"0648CC"},{"x":144,"y":-163,"bCoef":-0.5,"color":"08E6FF"},{"x":144,"y":-123,"bCoef":-0.5,"color":"08E6FF"},{"x":144,"y":-158,"bCoef":-0.5,"cMask":["red","blue"],"color":"004077"},{"x":144,"y":-128,"bCoef":-0.5,"cMask":["red","blue"],"color":"004077"},{"x":170,"y":27,"cMask":[],"color":"FFFFFF"},{"x":181,"y":27,"cMask":[],"color":"FFFFFF"},{"x":181,"y":43,"cMask":[],"color":"FFFFFF"},{"x":170,"y":43,"cMask":[],"color":"FFFFFF"},{"x":178.66667175293003,"y":35,"cMask":[],"trait":"bluePos3","color":"FFFFFF"},{"x":172,"y":35,"cMask":[],"color":"FFFFFF"},{"x":110,"y":27,"cMask":[],"color":"FFFFFF"},{"x":96,"y":27,"cMask":[],"color":"FFFFFF"},{"x":96,"y":43,"cMask":[],"color":"FFFFFF"},{"x":109,"y":43,"cMask":[],"color":"FFFFFF"},{"x":109,"y":35,"cMask":[],"color":"FFFFFF"},{"x":96,"y":35,"cMask":[],"color":"FFFFFF"},{"x":139,"y":-151,"cMask":[],"color":"FFFFFF"},{"x":149,"y":-151,"cMask":[],"color":"FFFFFF"},{"x":149,"y":-143,"cMask":[],"color":"FFFFFF"},{"x":139,"y":-143,"cMask":[],"color":"FFFFFF"},{"x":149,"y":-135,"cMask":[],"color":"FFFFFF"},{"x":139,"y":-135,"cMask":[],"color":"FFFFFF"},{"x":148,"y":-163,"bCoef":-30,"color":"333333"},{"x":140,"y":-163,"bCoef":-30,"color":"333333"},{"x":145.66667175293003,"y":121,"cMask":[],"color":"FFFFFF"},{"x":145.66667175293003,"y":137,"cMask":[],"color":"FFFFFF"},{"x":136,"y":-69,"cMask":[],"color":"FFFFFF"},{"x":136,"y":-51,"cMask":[],"color":"FFFFFF"},{"x":141.81817626953,"y":-68,"cMask":[],"color":"FFFFFF"},{"x":141.81817626953,"y":-52,"cMask":[],"color":"FFFFFF"},{"x":152,"y":-52,"cMask":[],"color":"FFFFFF"},{"x":152,"y":-68,"cMask":[],"color":"FFFFFF"},{"x":97.8805331519404,"y":15.342666172230231,"bCoef":-30,"color":"333333"},{"x":105.87872785394498,"y":15.172720566739873,"bCoef":-30,"color":"333333"},{"x":196.21013507491642,"y":38.444748409323154,"bCoef":-30,"color":"333333"},{"x":196.16623138483607,"y":30.444868881105407,"bCoef":-30,"color":"333333"},{"x":146.54460968960586,"y":145.7614556786628,"cMask":[],"color":"0648CC"},{"x":144.79679309656962,"y":110.80512381793824,"cMask":[],"color":"0648CC"},{"x":146.66945373196558,"y":148.2583365258574,"bCoef":-0.5,"color":"08E6FF"},{"x":144.6719490542099,"y":108.3082429707436,"bCoef":-0.5,"color":"08E6FF"},{"x":146.4197656472461,"y":143.26457483146817,"bCoef":-0.5,"cMask":["red","blue"],"color":"004077"},{"x":144.92163713892936,"y":113.30200466513284,"bCoef":-0.5,"cMask":["red","blue"],"color":"004077"},{"x":150.66446308747697,"y":148.05858605808183,"bCoef":-30,"color":"333333"},{"x":142.6744443764542,"y":148.45808699363295,"bCoef":-30,"color":"333333"},{"x":-190,"y":179,"trait":"none","color":"C7E6BD","curve":0},{"x":-100,"y":179,"trait":"none","color":"C7E6BD","curve":0},{"x":99,"y":179,"trait":"none","color":"C7E6BD"},{"x":189,"y":179,"trait":"none","color":"C7E6BD"},{"x":98,"y":-181,"trait":"none","color":"C7E6BD"},{"x":188,"y":-181,"trait":"none","color":"C7E6BD"},{"x":-190,"y":-181,"trait":"none","color":"C7E6BD"},{"x":-100,"y":-181,"trait":"none","color":"C7E6BD"},{"x":-190,"y":-211,"trait":"none"},{"x":-100,"y":-211,"trait":"none"},{"x":98,"y":-211,"trait":"none"},{"x":188,"y":-211,"trait":"none"},{"x":99,"y":209,"trait":"none"},{"x":189,"y":209,"trait":"none"},{"x":-100,"y":209,"trait":"none"},{"x":-190,"y":209,"trait":"none"},{"x":-190,"y":179,"trait":"none"},{"x":-281,"y":-182,"bCoef":-1,"cMask":["wall"],"trait":"none","color":"FF6054"},{"x":-281,"y":178,"bCoef":-1,"cMask":["wall"],"trait":"none","color":"FF6054"},{"x":277,"y":-181,"bCoef":-1,"cMask":["wall"],"trait":"none","color":"08E6FF"},{"x":278,"y":180,"bCoef":-1,"cMask":["wall"],"trait":"none","color":"08E6FF"},{"x":277.32338976468,"y":178.73345881060513,"bCoef":-1,"cMask":["wall"],"trait":"none","color":"08E6FF"},{"x":-280.6776750621829,"y":-180.7539658834288,"bCoef":-1,"cMask":["wall"],"trait":"none","color":"FF6054"},{"x":278.32338976468,"y":-182.26654118939487,"bCoef":-1,"cMask":["wall"],"trait":"none","color":"FF6054"},{"x":-232.0672614953416,"y":-62.242870786138525,"cMask":[],"color":"D40000"},{"x":-231.32374947132124,"y":-27.25076896486837,"cMask":[],"color":"D40000"},{"x":-232.12036949705734,"y":-64.74230663051495,"bCoef":-0.5,"color":"FF6054"},{"x":-231.2706414696055,"y":-24.75133312049192,"bCoef":-0.5,"color":"FF6054"},{"x":-232.01415349362583,"y":-59.743434941762075,"bCoef":-3,"cMask":["red","blue"],"color":"FF6054"},{"x":-231.37685747303698,"y":-29.750204809244806,"bCoef":-1,"cMask":["red","blue"],"color":"FF6054"},{"x":-224,"y":-53,"cMask":[],"color":"FFFFFF"},{"x":-238,"y":-53,"cMask":[],"color":"FFFFFF"},{"x":-232,"y":-35,"cMask":[],"color":"FFFFFF"},{"x":-224,"y":-52,"cMask":[],"color":"FFFFFF"},{"x":-236.11946684805957,"y":-64.65733382776978,"bCoef":-30,"color":"333333"},{"x":-228.12127214605502,"y":-64.82727943326012,"bCoef":-30,"color":"333333"},{"x":48.9327385046584,"y":-76.24287078613852,"cMask":[],"color":"0648CC"},{"x":49.676250528678764,"y":-41.25076896486837,"cMask":[],"color":"0648CC"},{"x":48.87963050294266,"y":-78.74230663051495,"bCoef":-0.5,"color":"08E6FF"},{"x":49.72935853039451,"y":-38.75133312049192,"bCoef":-0.5,"color":"08E6FF"},{"x":48.98584650637417,"y":-73.74343494176208,"bCoef":-3,"cMask":["red","blue"],"color":"004077"},{"x":49.62314252696302,"y":-43.750204809244806,"bCoef":-1,"cMask":["red","blue"],"color":"004077"},{"x":44.8805331519404,"y":-78.65733382776978,"bCoef":-30,"color":"333333"},{"x":52.87872785394498,"y":-78.82727943326012,"bCoef":-30,"color":"333333"},{"x":57,"y":-66,"cMask":[],"color":"FFFFFF"},{"x":43,"y":-66,"cMask":[],"color":"FFFFFF"},{"x":49,"y":-48,"cMask":[],"color":"FFFFFF"},{"x":57,"y":-65,"cMask":[],"color":"FFFFFF"},{"x":-142,"y":133,"trait":"redPos1"},{"x":-231,"y":-48,"trait":"redPos7"},{"x":-178,"y":34,"trait":"redPos6"},{"x":-146,"y":-48,"trait":"redPos10"},{"x":146,"y":128,"trait":"bluePos1"},{"x":105,"y":35,"trait":"bluePos6"},{"x":50,"y":-60,"trait":"bluePos7"},{"x":143,"y":-61,"trait":"bluePos10"},{"x":143,"y":-143,"trait":"bluePos9"},{"x":144.54460968960586,"y":-43.147632456102826,"cMask":[],"color":"0648CC"},{"x":142.79679309656962,"y":-78.10396431682739,"cMask":[],"color":"0648CC"},{"x":144.66945373196558,"y":-40.65075160890822,"bCoef":-0.5,"color":"08E6FF"},{"x":142.6719490542099,"y":-80.600845164022,"bCoef":-0.5,"color":"08E6FF"},{"x":144.4197656472461,"y":-45.644513303297444,"bCoef":-0.5,"cMask":["red","blue"],"color":"004077"},{"x":142.92163713892936,"y":-75.60708346963278,"bCoef":-0.5,"cMask":["red","blue"],"color":"004077"},{"x":148.66446308747697,"y":-40.850502076683796,"bCoef":-30,"color":"333333"},{"x":140.6744443764542,"y":-40.451001141132664,"bCoef":-30,"color":"333333"},{"x":-47.33332824706997,"y":-61,"cMask":[],"color":"FFFFFF"},{"x":-47.33332824706997,"y":-45,"cMask":[],"color":"FFFFFF"},{"x":-50.45539031039414,"y":-35.2385443213372,"cMask":[],"color":"D40000"},{"x":-52.203206903430385,"y":-70.19487618206176,"cMask":[],"color":"D40000"},{"x":-50.330546268034425,"y":-32.7416634741426,"bCoef":-0.5,"color":"FF6054"},{"x":-52.328050945790096,"y":-72.6917570292564,"bCoef":-0.5,"color":"FF6054"},{"x":-50.580234352753905,"y":-37.73542516853183,"bCoef":-0.5,"cMask":["red","blue"],"color":"FF6054"},{"x":-52.078362861070644,"y":-67.69799533486716,"bCoef":-0.5,"cMask":["red","blue"],"color":"FF6054"},{"x":-46.335536912523025,"y":-32.94141394191817,"bCoef":-30,"color":"333333"},{"x":-54.325555623545796,"y":-32.541913006367054,"bCoef":-30,"color":"333333"},{"x":-52,"y":-52,"trait":"redPos11"},{"x":-58.33332824706997,"y":-60,"cMask":[],"color":"FFFFFF"},{"x":-58.33332824706997,"y":-44,"cMask":[],"color":"FFFFFF"},{"x":219.66667175293003,"y":-67,"cMask":[],"color":"FFFFFF"},{"x":219.66667175293003,"y":-51,"cMask":[],"color":"FFFFFF"},{"x":225.54460968960586,"y":-43.2385443213372,"cMask":[],"color":"0648CC"},{"x":223.79679309656962,"y":-78.19487618206176,"cMask":[],"color":"0648CC"},{"x":225.66945373196558,"y":-40.7416634741426,"bCoef":-0.5,"color":"08E6FF"},{"x":223.6719490542099,"y":-80.6917570292564,"bCoef":-0.5,"color":"08E6FF"},{"x":225.4197656472461,"y":-45.73542516853183,"bCoef":-0.5,"cMask":["red","blue"],"color":"004077","_data":{"mirror":{}}},{"x":223.92163713892936,"y":-75.69799533486716,"bCoef":-0.5,"cMask":["red","blue"],"color":"004077","_data":{"mirror":{}}},{"x":229.66446308747697,"y":-40.94141394191817,"bCoef":-30,"color":"333333"},{"x":221.6744443764542,"y":-40.541913006367054,"bCoef":-30,"color":"333333"},{"x":222,"y":-58,"trait":"bluePos11","_data":{"mirror":{}}},{"x":229.66667175293003,"y":-67,"cMask":[],"color":"FFFFFF","_data":{"mirror":{}}},{"x":229.66667175293003,"y":-51,"cMask":[],"color":"FFFFFF","_data":{"mirror":{}}}],"segments":[{"v0":0,"v1":1,"vis":false,"color":"33BF00","cMask":["red","blue"],"cGroup":["red","blue"]},{"v0":2,"v1":3,"curve":180,"color":"D40000","cMask":[],"curveF":6.123233995736766e-17},{"v0":3,"v1":2,"curve":180,"color":"D40000","cMask":[],"curveF":6.123233995736766e-17},{"v0":4,"v1":5,"curve":180,"color":"FF6054","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":5,"v1":4,"curve":180,"color":"FF6054","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":6,"v1":7,"curve":180,"color":"FF6054","bCoef":-0.5,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":7,"v1":6,"curve":180,"color":"FF6054","bCoef":-0.5,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":8,"v1":9,"curve":180,"color":"D40000","cMask":[],"curveF":6.123233995736766e-17},{"v0":9,"v1":8,"curve":180,"color":"D40000","cMask":[],"curveF":6.123233995736766e-17},{"v0":10,"v1":11,"curve":180,"color":"FF6054","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":11,"v1":10,"curve":180,"color":"FF6054","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":12,"v1":13,"curve":180,"color":"FF6054","bCoef":-1,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":13,"v1":12,"curve":180,"color":"FF6054","bCoef":-1,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":14,"v1":15,"curve":180,"color":"D40000","cMask":[],"curveF":6.123233995736766e-17},{"v0":15,"v1":14,"curve":180,"color":"D40000","cMask":[],"curveF":6.123233995736766e-17},{"v0":16,"v1":17,"curve":180,"color":"FF6054","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":17,"v1":16,"curve":180,"color":"FF6054","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":18,"v1":19,"curve":180,"color":"FF6054","bCoef":-0.5,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":19,"v1":18,"curve":180,"color":"FF6054","bCoef":0,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":20,"v1":21,"color":"FFFFFF","cMask":[]},{"v0":21,"v1":22,"color":"FFFFFF","cMask":[]},{"v0":22,"v1":23,"color":"FFFFFF","cMask":[]},{"v0":24,"v1":25,"color":"FFFFFF","cMask":[]},{"v0":26,"v1":27,"color":"FFFFFF","cMask":[]},{"v0":27,"v1":28,"color":"FFFFFF","cMask":[]},{"v0":28,"v1":29,"color":"FFFFFF","cMask":[]},{"v0":29,"v1":30,"color":"FFFFFF","cMask":[]},{"v0":30,"v1":31,"color":"FFFFFF","cMask":[]},{"v0":32,"v1":33,"color":"FFFFFF","cMask":[]},{"v0":33,"v1":34,"color":"FFFFFF","cMask":[]},{"v0":34,"v1":35,"color":"FFFFFF","cMask":[]},{"v0":35,"v1":32,"color":"FFFFFF","cMask":[]},{"v0":34,"v1":36,"color":"FFFFFF","cMask":[]},{"v0":36,"v1":37,"color":"FFFFFF","cMask":[]},{"v0":39,"v1":38,"curve":14.999999999999998,"color":"333333","bCoef":-30,"curveF":7.595754112725151},{"v0":40,"v1":41,"curve":180,"color":"D40000","cMask":[],"curveF":6.123233995736766e-17},{"v0":41,"v1":40,"curve":180,"color":"D40000","cMask":[],"curveF":6.123233995736766e-17},{"v0":42,"v1":43,"curve":180,"color":"FF6054","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":43,"v1":42,"curve":180,"color":"FF6054","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":44,"v1":45,"curve":180,"color":"FF6054","bCoef":-0.5,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":45,"v1":44,"curve":180,"color":"FF6054","bCoef":-0.5,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":46,"v1":47,"color":"FFFFFF","cMask":[]},{"v0":48,"v1":49,"color":"FFFFFF","cMask":[]},{"v0":50,"v1":51,"color":"FFFFFF","cMask":[]},{"v0":51,"v1":52,"color":"FFFFFF","cMask":[]},{"v0":52,"v1":53,"color":"FFFFFF","cMask":[]},{"v0":53,"v1":50,"color":"FFFFFF","cMask":[]},{"v0":54,"v1":55,"color":"333333","bCoef":-30},{"v0":57,"v1":56,"curve":29.999999999999996,"color":"333333","bCoef":-30,"curveF":3.7320508075688776},{"v0":58,"v1":59,"curve":14.999999999999998,"color":"333333","bCoef":-30,"curveF":7.595754112725151},{"v0":60,"v1":61,"curve":180,"color":"D40000","cMask":[],"curveF":6.123233995736766e-17},{"v0":61,"v1":60,"curve":180,"color":"D40000","cMask":[],"curveF":6.123233995736766e-17},{"v0":62,"v1":63,"curve":180,"color":"FF6054","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":63,"v1":62,"curve":180,"color":"FF6054","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":64,"v1":65,"curve":180,"color":"FF6054","bCoef":-0.5,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":65,"v1":64,"curve":180,"color":"FF6054","bCoef":-0.5,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":66,"v1":67,"curve":14.999999999999998,"color":"333333","bCoef":-30,"curveF":7.595754112725151},{"v0":68,"v1":69,"curve":180,"color":"0648CC","cMask":[],"curveF":6.123233995736766e-17},{"v0":69,"v1":68,"curve":180,"color":"0648CC","cMask":[],"curveF":6.123233995736766e-17},{"v0":70,"v1":71,"curve":180,"color":"08E6FF","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":71,"v1":70,"curve":180,"color":"08E6FF","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":72,"v1":73,"curve":180,"color":"004077","bCoef":-0.5,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":73,"v1":72,"curve":180,"color":"004077","bCoef":-0.5,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":74,"v1":75,"curve":180,"color":"0648CC","cMask":[],"curveF":6.123233995736766e-17},{"v0":75,"v1":74,"curve":180,"color":"0648CC","cMask":[],"curveF":6.123233995736766e-17},{"v0":76,"v1":77,"curve":180,"color":"08E6FF","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":77,"v1":76,"curve":180,"color":"08E6FF","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":78,"v1":79,"curve":180,"color":"004077","bCoef":-1,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":79,"v1":78,"curve":180,"color":"004077","bCoef":-1,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":80,"v1":81,"curve":180,"color":"0648CC","cMask":[],"curveF":6.123233995736766e-17},{"v0":81,"v1":80,"curve":180,"color":"0648CC","cMask":[],"curveF":6.123233995736766e-17},{"v0":82,"v1":83,"curve":180,"color":"08E6FF","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":83,"v1":82,"curve":180,"color":"08E6FF","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":84,"v1":85,"curve":180,"color":"004077","bCoef":-0.5,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":85,"v1":84,"curve":180,"color":"004077","bCoef":0,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":86,"v1":87,"color":"FFFFFF","cMask":[]},{"v0":87,"v1":88,"color":"FFFFFF","cMask":[]},{"v0":88,"v1":89,"color":"FFFFFF","cMask":[]},{"v0":90,"v1":91,"color":"FFFFFF","cMask":[]},{"v0":92,"v1":93,"color":"FFFFFF","cMask":[]},{"v0":93,"v1":94,"color":"FFFFFF","cMask":[]},{"v0":94,"v1":95,"color":"FFFFFF","cMask":[]},{"v0":95,"v1":96,"color":"FFFFFF","cMask":[]},{"v0":96,"v1":97,"color":"FFFFFF","cMask":[]},{"v0":98,"v1":99,"color":"FFFFFF","cMask":[]},{"v0":99,"v1":100,"color":"FFFFFF","cMask":[]},{"v0":100,"v1":101,"color":"FFFFFF","cMask":[]},{"v0":101,"v1":98,"color":"FFFFFF","cMask":[]},{"v0":100,"v1":102,"color":"FFFFFF","cMask":[]},{"v0":102,"v1":103,"color":"FFFFFF","cMask":[]},{"v0":105,"v1":104,"curve":14.999999999999998,"color":"333333","bCoef":-30,"curveF":7.595754112725151},{"v0":106,"v1":107,"color":"FFFFFF","cMask":[]},{"v0":108,"v1":109,"color":"FFFFFF","cMask":[]},{"v0":110,"v1":111,"color":"FFFFFF","cMask":[]},{"v0":111,"v1":112,"color":"FFFFFF","cMask":[]},{"v0":112,"v1":113,"color":"FFFFFF","cMask":[]},{"v0":113,"v1":110,"color":"FFFFFF","cMask":[]},{"v0":114,"v1":115,"color":"333333","bCoef":-30},{"v0":117,"v1":116,"curve":29.999999999999996,"color":"333333","bCoef":-30,"curveF":3.7320508075688776},{"v0":118,"v1":119,"curve":180,"color":"0648CC","cMask":[],"curveF":6.123233995736766e-17},{"v0":119,"v1":118,"curve":180,"color":"0648CC","cMask":[],"curveF":6.123233995736766e-17},{"v0":120,"v1":121,"curve":180,"color":"08E6FF","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":121,"v1":120,"curve":180,"color":"08E6FF","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":122,"v1":123,"curve":180,"color":"004077","bCoef":-0.5,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":123,"v1":122,"curve":180,"color":"004077","bCoef":-0.5,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":124,"v1":125,"curve":14.999999999999998,"color":"333333","bCoef":-30,"curveF":7.595754112725151},{"v0":132,"v1":134,"color":"ffffff","trait":"none"},{"v0":133,"v1":135,"color":"ffffff","trait":"none"},{"v0":135,"v1":134,"color":"ffffff","trait":"none"},{"v0":130,"v1":136,"color":"ffffff","trait":"none"},{"v0":136,"v1":137,"color":"ffffff","trait":"none","y":-210},{"v0":137,"v1":131,"color":"ffffff","trait":"none"},{"v0":128,"v1":138,"color":"ffffff","trait":"none"},{"v0":138,"v1":139,"color":"ffffff","trait":"none"},{"v0":139,"v1":129,"color":"ffffff","trait":"none"},{"v0":127,"v1":140,"color":"ffffff","trait":"none"},{"v0":140,"v1":141,"color":"ffffff","trait":"none"},{"v0":141,"v1":142,"color":"ffffff","trait":"none"},{"v0":143,"v1":144,"curve":0,"vis":true,"color":"FF6054","bCoef":-1,"cMask":["wall"],"trait":"none","x":-320},{"v0":145,"v1":146,"curve":0,"vis":true,"color":"08E6FF","bCoef":-1,"cMask":["wall"],"trait":"none","x":-320},{"v0":148,"v1":149,"curve":0,"vis":true,"color":"FF6054","bCoef":-1,"cMask":["wall"],"trait":"none","x":-320},{"v0":150,"v1":151,"curve":180,"color":"D40000","cMask":[],"curveF":6.123233995736766e-17},{"v0":151,"v1":150,"curve":180,"color":"D40000","cMask":[],"curveF":6.123233995736766e-17},{"v0":152,"v1":153,"curve":180,"color":"FF6054","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":153,"v1":152,"curve":180,"color":"FF6054","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":154,"v1":155,"curve":180,"color":"FF6054","bCoef":-1,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":155,"v1":154,"curve":180,"color":"FF6054","bCoef":-1,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":156,"v1":157,"color":"FFFFFF","cMask":[]},{"v0":158,"v1":159,"color":"FFFFFF","cMask":[]},{"v0":160,"v1":161,"color":"333333","bCoef":-30},{"v0":162,"v1":163,"curve":180,"color":"0648CC","cMask":[],"curveF":6.123233995736766e-17},{"v0":163,"v1":162,"curve":180,"color":"0648CC","cMask":[],"curveF":6.123233995736766e-17},{"v0":164,"v1":165,"curve":180,"color":"08E6FF","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":165,"v1":164,"curve":180,"color":"08E6FF","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":166,"v1":167,"curve":180,"color":"004077","bCoef":-1,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":167,"v1":166,"curve":180,"color":"004077","bCoef":-1,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":168,"v1":169,"color":"333333","bCoef":-30},{"v0":170,"v1":171,"color":"FFFFFF","cMask":[]},{"v0":172,"v1":173,"color":"FFFFFF","cMask":[]},{"v0":183,"v1":184,"curve":180,"color":"0648CC","cMask":[],"curveF":6.123233995736766e-17},{"v0":184,"v1":183,"curve":180,"color":"0648CC","cMask":[],"curveF":6.123233995736766e-17},{"v0":185,"v1":186,"curve":180,"color":"08E6FF","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":186,"v1":185,"curve":180,"color":"08E6FF","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":187,"v1":188,"curve":180,"color":"004077","bCoef":-0.5,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":188,"v1":187,"curve":180,"color":"004077","bCoef":-0.5,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":189,"v1":190,"curve":14.999999999999998,"color":"333333","bCoef":-30,"curveF":7.595754112725151},{"v0":191,"v1":192,"color":"FFFFFF","cMask":[]},{"v0":193,"v1":194,"curve":180,"color":"D40000","cMask":[],"curveF":6.123233995736766e-17},{"v0":194,"v1":193,"curve":180,"color":"D40000","cMask":[],"curveF":6.123233995736766e-17},{"v0":195,"v1":196,"curve":180,"color":"FF6054","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":196,"v1":195,"curve":180,"color":"FF6054","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":197,"v1":198,"curve":180,"color":"FF6054","bCoef":-0.5,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":198,"v1":197,"curve":180,"color":"FF6054","bCoef":-0.5,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":199,"v1":200,"curve":14.999999999999998,"color":"333333","bCoef":-30,"curveF":7.595754112725151},{"v0":202,"v1":203,"color":"FFFFFF","cMask":[]},{"v0":204,"v1":205,"color":"FFFFFF","cMask":[]},{"v0":206,"v1":207,"curve":180,"color":"0648CC","cMask":[],"curveF":6.123233995736766e-17},{"v0":207,"v1":206,"curve":180,"color":"0648CC","cMask":[],"curveF":6.123233995736766e-17},{"v0":208,"v1":209,"curve":180,"color":"08E6FF","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":209,"v1":208,"curve":180,"color":"08E6FF","bCoef":-0.5,"curveF":6.123233995736766e-17},{"v0":210,"v1":211,"curve":180,"color":"004077","bCoef":-0.5,"cMask":["red","blue"],"curveF":6.123233995736766e-17},{"v0":211,"v1":210,"curve":180,"color":"004077","bCoef":-0.5,"cMask":["red","blue"],"curveF":6.123233995736766e-17,"_data":{"mirror":{},"arc":{"a":[223.92163713892936,-75.69799533486716],"b":[225.4197656472461,-45.73542516853183],"curve":180,"radius":14.999999999999991,"center":[224.6707013930877,-60.716710251699496],"from":-1.6207547225168377,"to":1.5208379310729538}}},{"v0":212,"v1":213,"curve":14.999999999999998,"color":"333333","bCoef":-30,"curveF":7.595754112725151},{"v0":215,"v1":216,"color":"FFFFFF","cMask":[],"_data":{"mirror":{},"arc":{"a":[229.66667175293003,-67],"b":[229.66667175293003,-51],"radius":null,"center":[null,null],"from":null,"to":null}}}],"planes":[{"normal":[0,1],"dist":-231.5,"_data":{"extremes":{"normal":[0,1],"dist":-231.5,"canvas_rect":[-470,-500,470,500],"a":[-470,-231.5],"b":[470,-231.5]}}},{"normal":[1,0],"dist":-331.5,"cMask":["red","blue"],"_data":{"extremes":{"normal":[1,0],"dist":-331.5,"canvas_rect":[-470,-500,470,500],"a":[-331.5,-500],"b":[-331.5,500]}}},{"normal":[0,-1],"dist":-227,"cMask":["red","blue"],"_data":{"extremes":{"normal":[0,-1],"dist":-227,"canvas_rect":[-470,-500,470,500],"a":[-470,227],"b":[470,227]}}},{"normal":[-1,0],"dist":-342,"cMask":["red","blue"],"_data":{"extremes":{"normal":[-1,0],"dist":-342,"canvas_rect":[-470,-500,470,500],"a":[342,-500],"b":[342,500]}}}],"goals":[],"discs":[],"playerPhysics":{"bCoef":0.35,"invMass":1,"damping":0.95,"acceleration":0.12,"kickingDamping":1,"kickStrength":0.2},"ballPhysics":{"radius":0,"bCoef":1.1,"invMass":0.999,"damping":0.9999,"color":"C9F364"},"spawnDistance":500,"traits":{"redPos1":{"cMask":[]},"redPos3":{"cMask":[]},"redPos6":{"cMask":[]},"redPos7":{"cMask":[]},"redPos11":{"cMask":[]},"redPos10":{"cMask":[]},"redPos9":{"cMask":[]},"bluePos1":{"cMask":[]},"bluePos3":{"cMask":[]},"bluePos6":{"cMask":[]},"bluePos7":{"cMask":[]},"bluePos11":{"cMask":[]},"bluePos10":{"cMask":[]},"bluePos9":{"cMask":[]}},"joints":[],"redSpawnPoints":[],"blueSpawnPoints":[]}`, RsVs6: `{"name":"HCL V7 Futsal By Sysx","width":1275,"height":635,"bg":{"color":"404447"},"vertexes":[{"x":-1200,"y":-600,"cMask":["ball"],"cGroup":["ball"]},{"x":1200,"y":-600,"cMask":["ball"],"cGroup":["ball"]},{"x":-1200,"y":600,"cMask":["ball"],"cGroup":["ball"]},{"x":1200,"y":600,"cMask":["ball"],"cGroup":["ball"]},{"x":-1200,"y":-105,"cMask":["ball"],"cGroup":["ball"]},{"x":1200,"y":-105,"cMask":["ball"],"cGroup":["ball"]},{"x":1200,"y":105,"cMask":["ball"],"cGroup":["ball"]},{"x":-1200,"y":105,"cMask":["ball"],"cGroup":["ball"]},{"x":-1252,"y":-105,"cMask":[],"cGroup":[]},{"x":-1252,"y":105,"cMask":[],"cGroup":[]},{"x":1252,"y":-105,"cMask":[],"cGroup":[]},{"x":1252,"y":105,"cMask":[],"cGroup":[]},{"x":0,"y":-600,"cMask":[],"cGroup":[]},{"x":0,"y":-120,"cMask":["red","blue"],"cGroup":["redKO","blueKO"]},{"x":0,"y":120,"cMask":["red","blue"],"cGroup":["redKO","blueKO"]},{"x":0,"y":600,"cMask":[],"cGroup":[]},{"x":840,"y":400,"cMask":[],"cGroup":[]},{"x":-840,"y":-400,"cMask":[],"cGroup":[]},{"x":-840,"y":400,"cMask":[],"cGroup":[]},{"x":840,"y":-400,"cMask":[],"cGroup":[]},{"x":-840,"y":400,"cMask":[],"cGroup":[]},{"x":-1206.5,"y":-600,"cMask":[],"cGroup":[]},{"x":-1206.5,"y":-105,"cMask":[],"cGroup":[]},{"x":1543.25,"y":644,"cMask":[],"cGroup":[]},{"x":1543.25,"y":154,"cMask":[],"cGroup":[]},{"x":-1206.5,"y":600,"cMask":[],"cGroup":[]},{"x":-1206.5,"y":95,"cMask":[],"cGroup":[]},{"x":1206.5,"y":-600,"cMask":[],"cGroup":[]},{"x":1206.5,"y":-105,"cMask":[],"cGroup":[]},{"x":1206.5,"y":600,"cMask":[],"cGroup":[]},{"x":1206.5,"y":105,"cMask":[],"cGroup":[]},{"x":0,"y":-635,"cMask":[],"cGroup":[]},{"x":0,"y":635,"cMask":[],"cGroup":[]},{"x":-1202,"y":-105,"cMask":[],"cGroup":[]},{"x":-1202,"y":95,"cMask":[],"cGroup":[]},{"x":1202,"y":-105,"cMask":[],"cGroup":[]},{"x":1202,"y":105,"cMask":[],"cGroup":[]},{"x":1200,"y":-105,"cMask":[],"cGroup":[]},{"x":1200,"y":105,"cMask":[],"cGroup":[]},{"x":-1198,"y":-105,"cMask":[],"cGroup":[]},{"x":-1198,"y":105,"cMask":[],"cGroup":[]},{"x":-1199,"y":105,"cMask":[],"cGroup":[]},{"x":-1252,"y":-95,"cMask":[],"cGroup":[]},{"x":-1199,"y":-105,"cMask":[],"cGroup":[]},{"x":1201,"y":-105,"cMask":[],"cGroup":[]},{"x":1252,"y":-95,"cMask":[],"cGroup":[]},{"x":1200,"y":105,"cMask":[],"cGroup":[]},{"x":1252,"y":95,"cMask":[],"cGroup":[]},{"x":1200,"y":105,"cMask":[],"cGroup":[]},{"x":-1200,"y":-105,"cMask":[],"cGroup":[]},{"x":-1200,"y":105,"cMask":[],"cGroup":[]},{"x":-1200,"y":105,"cMask":[],"cGroup":[]},{"x":-1200,"y":400,"cMask":[],"cGroup":[]},{"x":-840,"y":-400,"cMask":[],"cGroup":[]},{"x":-1200,"y":-400,"cMask":[],"cGroup":[]},{"x":840,"y":-400,"cMask":[],"cGroup":[]},{"x":1200,"y":-400,"cMask":[],"cGroup":[]},{"x":1200,"y":400,"cMask":[],"cGroup":[]},{"x":840,"y":400,"cMask":[],"cGroup":[]},{"x":-1170,"y":-600,"cMask":[],"cGroup":[]},{"x":-1200,"y":-570,"cMask":[],"cGroup":[]},{"x":-1200,"y":570,"cMask":[],"cGroup":[]},{"x":-1170,"y":600,"cMask":[],"cGroup":[]},{"x":1200,"y":570,"cMask":[],"cGroup":[]},{"x":1170,"y":600,"cMask":[],"cGroup":[]},{"x":1170,"y":-600,"cMask":[],"cGroup":[]},{"x":1200,"y":-570,"cMask":[],"cGroup":[]},{"x":0,"y":-80,"cMask":["wall"],"cGroup":["all"]},{"x":0,"y":80,"cMask":["wall"],"cGroup":["all"]},{"x":0,"y":-75,"cMask":["wall"],"cGroup":["all"]},{"x":0,"y":75,"cMask":["wall"],"cGroup":["all"]},{"x":-840,"y":-95,"cMask":["wall"]},{"x":-840,"y":95,"cMask":["wall"]},{"x":840,"y":-95,"cMask":["wall"]},{"x":840,"y":95,"cMask":["wall"]},{"x":940,"y":0,"cMask":["wall"]},{"x":945,"y":0,"cMask":["wall"]},{"x":-945,"y":0,"cMask":["wall"]},{"x":-940,"y":0,"cMask":["wall"]},{"x":1200,"y":-160,"cMask":["wall"]},{"x":1050,"y":-160,"cMask":["wall"]},{"x":1050,"y":160,"cMask":["wall"]},{"x":1200,"y":160,"cMask":["wall"]},{"x":-1199,"y":-160,"cMask":["wall"]},{"x":-1050,"y":-160,"cMask":["wall"]},{"x":-1050,"y":160,"cMask":["wall"]},{"x":-1200,"y":160,"cMask":["wall"]},{"x":-1198,"y":-105,"cMask":["wall"]},{"x":-1198,"y":105,"cMask":["wall"]},{"x":-1202,"y":-105,"cMask":["wall"]},{"x":-1202,"y":105,"cMask":["wall"]},{"x":1202,"y":-105,"cMask":["wall"]},{"x":1202,"y":105,"cMask":["wall"]},{"x":1198,"y":-105,"cMask":["wall"],"curve":0},{"x":1198,"y":105,"cMask":["wall"],"curve":0},{"x":-54.99999999999997,"y":604.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-54.99999999999997,"y":634.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-37.99999999999997,"y":604.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-37.99999999999997,"y":634.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-56.33333333333334,"y":633.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-36.33333333333334,"y":633.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-30.50000000000003,"y":605,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-30.50000000000003,"y":634.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-13.499999999999972,"y":605,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-13.499999999999972,"y":634.9666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-29.833333333333343,"y":606.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-13.833333333333343,"y":633.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":48.833333333333286,"y":606,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":48.833333333333286,"y":636,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":47.50000000000003,"y":608,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":63.50000000000003,"y":608,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-6.500000000000028,"y":605.3333333333333,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-6.500000000000028,"y":635.3333333333334,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":0.6666666666666572,"y":605.3333333333335,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":0.6666666666666572,"y":635.3333333333334,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":17.666666666666657,"y":605.3333333333335,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":17.666666666666657,"y":635.3333333333334,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-0.6666666666666572,"y":634.3333333333334,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":19.333333333333343,"y":634.3333333333334,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-0.6666666666666572,"y":607.0000000000001,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":19.333333333333343,"y":607.0000000000001,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":24.333333333333343,"y":605.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":24.333333333333343,"y":635.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":41.33333333333334,"y":605.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":41.33333333333334,"y":635.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":23.00000000000003,"y":634.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":43.00000000000003,"y":634.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":47.50000000000003,"y":634.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":63.50000000000003,"y":634.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":48.8333333333334,"y":621.3333333333334,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":60.16666666666677,"y":621.3333333333334,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":13.999999999999972,"y":629.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":20.6666666666666,"y":639.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-56,"y":-636.3333333333333,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-56,"y":-606.3333333333333,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-39,"y":-636.3333333333333,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-39,"y":-606.3333333333333,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-57.33333333333337,"y":-607.3333333333333,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-37.33333333333337,"y":-607.3333333333333,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-31.500000000000057,"y":-636,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-31.500000000000057,"y":-606.3333333333333,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-14.5,"y":-636,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-14.5,"y":-606.0333333333333,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-30.83333333333337,"y":-634.3333333333333,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-14.833333333333371,"y":-607.3333333333333,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":47.83333333333326,"y":-635,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":47.83333333333326,"y":-605,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":46.5,"y":-633,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":62.5,"y":-633,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-7.500000000000057,"y":-635.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-7.500000000000057,"y":-605.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-0.33333333333337123,"y":-635.6666666666666,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-0.33333333333337123,"y":-605.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":16.66666666666663,"y":-635.6666666666666,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":16.66666666666663,"y":-605.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-1.6666666666666856,"y":-606.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":18.333333333333314,"y":-606.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-1.6666666666666856,"y":-634,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":18.333333333333314,"y":-634,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":23.333333333333314,"y":-635.3333333333333,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":23.333333333333314,"y":-605.3333333333333,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":40.333333333333314,"y":-635.3333333333333,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":40.333333333333314,"y":-605.3333333333333,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":22,"y":-606.3333333333333,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":42,"y":-606.3333333333333,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":46.5,"y":-606.3333333333333,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":62.5,"y":-606.3333333333333,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":47.83333333333337,"y":-619.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":59.16666666666674,"y":-619.6666666666667,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":12.999999999999943,"y":-611.3333333333333,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":19.666666666666572,"y":-601.3333333333333,"cMask":["wall"],"cGroup":["all"],"color":"081B77"},{"x":-55.3333333333333,"y":-16.3333333333332,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":-55.3333333333333,"y":13.6666666666668,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":-38.3333333333333,"y":-16.3333333333332,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":-38.3333333333333,"y":13.6666666666668,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":-56.66666666666667,"y":12.6666666666668,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":-36.66666666666667,"y":12.6666666666668,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":-30.833333333333357,"y":-15.999999999999943,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":-30.833333333333357,"y":13.6666666666668,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":-13.8333333333333,"y":-15.999999999999943,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":-13.8333333333333,"y":13.966666666666754,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":-30.16666666666667,"y":-14.3333333333332,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":-14.166666666666671,"y":12.6666666666668,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":48.49999999999997,"y":-14.999999999999943,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":48.49999999999997,"y":15,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":47.166666666666714,"y":-12.999999999999943,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":63.166666666666714,"y":-12.999999999999943,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":-6.833333333333357,"y":-15.666666666666686,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":-6.833333333333357,"y":14.333333333333485,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":0.3333333333333286,"y":14.333333333333485,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":17.333333333333343,"y":-15.666666666666458,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":17.333333333333343,"y":14.333333333333485,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":-0.9999999999999858,"y":13.333333333333428,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":19.00000000000003,"y":13.333333333333428,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":-0.9999999999999858,"y":-13.99999999999983,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":19.00000000000003,"y":-13.99999999999983,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":24.00000000000003,"y":-15.3333333333332,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":24.00000000000003,"y":14.666666666666742,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":41.00000000000003,"y":-15.3333333333332,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":41.00000000000003,"y":14.666666666666742,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":22.666666666666714,"y":13.6666666666668,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":42.666666666666714,"y":13.6666666666668,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":47.166666666666714,"y":13.6666666666668,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":63.166666666666714,"y":13.6666666666668,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":48.500000000000085,"y":0.3333333333334281,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":59.83333333333346,"y":0.3333333333334281,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":13.666666666666657,"y":8.6666666666668,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":20.333333333333286,"y":18.666666666666742,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"},{"x":0.3333333333333286,"y":-15.666666666666458,"cMask":["wall"],"cGroup":["all"],"color":"1BA148"}],"segments":[{"v0":0,"v1":1,"color":"A3A3A3","cMask":["ball"],"cGroup":["ball"],"bias":-7},{"v0":2,"v1":3,"color":"A3A3A3","cMask":["ball"],"cGroup":["ball"],"bias":7},{"v0":0,"v1":4,"color":"A3A3A3","cMask":["ball"],"cGroup":["ball"],"bias":7},{"v0":1,"v1":5,"color":"A3A3A3","cMask":["ball"],"cGroup":["ball"],"bias":-7},{"v0":3,"v1":6,"color":"A3A3A3","cMask":["ball"],"cGroup":["ball"],"bias":7},{"v0":2,"v1":7,"color":"A3A3A3","cMask":["ball"],"cGroup":["ball"],"bias":-7},{"v0":4,"v1":8,"color":"A3A3A3","bCoef":0.1,"cMask":["ball"],"bias":7},{"v0":8,"v1":9,"color":"A3A3A3","bCoef":0.1,"cMask":["ball"],"bias":7},{"v0":9,"v1":7,"color":"A3A3A3","bCoef":0.1,"cMask":["ball"],"bias":7},{"v0":5,"v1":10,"color":"A3A3A3","bCoef":0.1,"cMask":["ball"],"bias":-7},{"v0":10,"v1":11,"color":"A3A3A3","bCoef":0.1,"cMask":["ball"],"bias":-7},{"v0":11,"v1":6,"color":"A3A3A3","bCoef":0.1,"cMask":["ball"],"bias":-7},{"v0":12,"v1":13,"color":"A3A3A3","cMask":["red","blue"],"cGroup":["redKO","blueKO"]},{"v0":14,"v1":15,"color":"A3A3A3","cMask":["red","blue"],"cGroup":["redKO","blueKO"]},{"v0":13,"v1":14,"curve":180,"color":"A3A3A3","cMask":["red","blue"],"cGroup":["redKO"],"curveF":6.123233995736766e-17},{"v0":14,"v1":13,"curve":180,"color":"A3A3A3","cMask":["red","blue"],"cGroup":["blueKO"],"curveF":6.123233995736766e-17},{"v0":17,"v1":18,"color":"A3A3A3","cMask":[],"cGroup":[]},{"v0":16,"v1":19,"color":"A3A3A3","cMask":[],"cGroup":[]},{"v0":12,"v1":31,"vis":false,"cMask":["red","blue"],"cGroup":["redKO","blueKO"]},{"v0":15,"v1":32,"vis":false,"cMask":["red","blue"],"cGroup":["redKO","blueKO"]},{"v0":37,"v1":48,"color":"6666FF","cMask":[],"cGroup":[]},{"v0":49,"v1":51,"color":"FF6666","cMask":[],"cGroup":[]},{"v0":20,"v1":52,"color":"A3A3A3","cMask":[],"cGroup":[]},{"v0":53,"v1":54,"color":"A3A3A3","cMask":[],"cGroup":[]},{"v0":55,"v1":56,"color":"A3A3A3","cMask":[],"cGroup":[]},{"v0":57,"v1":58,"color":"A3A3A3","cMask":[],"cGroup":[]},{"v0":59,"v1":60,"curve":89.99999999999999,"color":"A3A3A3","cMask":[],"cGroup":[],"curveF":1.0000000000000002},{"v0":61,"v1":62,"curve":89.99999999999999,"color":"A3A3A3","cMask":[],"cGroup":[],"curveF":1.0000000000000002},{"v0":64,"v1":63,"curve":89.99999999999999,"color":"A3A3A3","cMask":[],"cGroup":[],"curveF":1.0000000000000002},{"v0":66,"v1":65,"curve":89.99999999999999,"color":"A3A3A3","cMask":[],"cGroup":[],"curveF":1.0000000000000002},{"v0":69,"v1":70,"curve":180,"vis":false,"color":"1BA148","cMask":["wall"],"bias":7,"curveF":6.123233995736766e-17},{"v0":67,"v1":68,"curve":180,"vis":false,"color":"1BA148","cMask":["wall"],"bias":-7,"curveF":6.123233995736766e-17},{"v0":69,"v1":70,"curve":180,"vis":false,"color":"1BA148","cMask":["wall"],"bias":7,"curveF":6.123233995736766e-17},{"v0":68,"v1":67,"curve":180,"vis":false,"color":"1BA148","cMask":["wall"],"bias":-7,"curveF":6.123233995736766e-17},{"v0":70,"v1":69,"curve":180,"vis":false,"color":"1BA148","cMask":["wall"],"bias":7,"curveF":6.123233995736766e-17},{"v0":71,"v1":72,"curve":180,"color":"A3A3A3","cMask":["wall"],"curveF":6.123233995736766e-17},{"v0":74,"v1":73,"curve":180,"color":"A3A3A3","cMask":["wall"],"curveF":6.123233995736766e-17},{"v0":76,"v1":75,"curve":180,"color":"A3A3A3","cMask":["wall"],"curveF":6.123233995736766e-17},{"v0":75,"v1":76,"curve":180,"color":"A3A3A3","cMask":["wall"],"curveF":6.123233995736766e-17},{"v0":75,"v1":76,"color":"A3A3A3","cMask":["wall"]},{"v0":78,"v1":77,"curve":180,"color":"A3A3A3","cMask":["wall"],"curveF":6.123233995736766e-17},{"v0":77,"v1":78,"curve":180,"color":"A3A3A3","cMask":["wall"],"curveF":6.123233995736766e-17},{"v0":77,"v1":78,"color":"A3A3A3","cMask":["wall"]},{"v0":79,"v1":80,"color":"A3A3A3","cMask":["wall"]},{"v0":80,"v1":81,"color":"A3A3A3","cMask":["wall"]},{"v0":81,"v1":82,"color":"A3A3A3","cMask":["wall"]},{"v0":83,"v1":84,"color":"A3A3A3","cMask":["wall"]},{"v0":84,"v1":85,"color":"A3A3A3","cMask":["wall"]},{"v0":85,"v1":86,"color":"A3A3A3","cMask":["wall"]},{"v0":87,"v1":88,"color":"404447","cMask":["wall"]},{"v0":89,"v1":90,"color":"404447","cMask":["wall"]},{"v0":91,"v1":92,"color":"404447","cMask":["wall"]},{"v0":93,"v1":94,"curve":-24.41146561638211,"color":"404447","cMask":["wall"]},{"v0":95,"v1":96,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":97,"v1":98,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":99,"v1":100,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":101,"v1":102,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":103,"v1":104,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":105,"v1":106,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":107,"v1":108,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":109,"v1":110,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":111,"v1":112,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":113,"v1":114,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":115,"v1":116,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":117,"v1":118,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":119,"v1":120,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":121,"v1":122,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":123,"v1":124,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":125,"v1":126,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":127,"v1":128,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":129,"v1":130,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":131,"v1":132,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":133,"v1":134,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":135,"v1":136,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":137,"v1":138,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":139,"v1":140,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":141,"v1":142,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":143,"v1":144,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":145,"v1":146,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":147,"v1":148,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":149,"v1":150,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":151,"v1":152,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":153,"v1":154,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":155,"v1":156,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":157,"v1":158,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":159,"v1":160,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":161,"v1":162,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":163,"v1":164,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":165,"v1":166,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":167,"v1":168,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":169,"v1":170,"color":"081B77","cMask":["wall"],"cGroup":["all"]},{"v0":171,"v1":172,"color":"1BA148","cMask":["wall"],"cGroup":["all"]},{"v0":173,"v1":174,"color":"1BA148","cMask":["wall"],"cGroup":["all"]},{"v0":175,"v1":176,"color":"1BA148","cMask":["wall"],"cGroup":["all"]},{"v0":177,"v1":178,"color":"1BA148","cMask":["wall"],"cGroup":["all"]},{"v0":179,"v1":180,"color":"1BA148","cMask":["wall"],"cGroup":["all"]},{"v0":181,"v1":182,"color":"1BA148","cMask":["wall"],"cGroup":["all"]},{"v0":183,"v1":184,"color":"1BA148","cMask":["wall"],"cGroup":["all"]},{"v0":185,"v1":186,"color":"1BA148","cMask":["wall"],"cGroup":["all"]},{"v0":187,"v1":188,"color":"1BA148","cMask":["wall"],"cGroup":["all"]},{"v0":208,"v1":189,"color":"1BA148","cMask":["wall"],"cGroup":["all"]},{"v0":190,"v1":191,"color":"1BA148","cMask":["wall"],"cGroup":["all"]},{"v0":192,"v1":193,"color":"1BA148","cMask":["wall"],"cGroup":["all"]},{"v0":194,"v1":195,"color":"1BA148","cMask":["wall"],"cGroup":["all"]},{"v0":196,"v1":197,"color":"1BA148","cMask":["wall"],"cGroup":["all"]},{"v0":198,"v1":199,"color":"1BA148","cMask":["wall"],"cGroup":["all"]},{"v0":200,"v1":201,"color":"1BA148","cMask":["wall"],"cGroup":["all"]},{"v0":202,"v1":203,"color":"1BA148","cMask":["wall"],"cGroup":["all"]},{"v0":204,"v1":205,"color":"1BA148","cMask":["wall"],"cGroup":["all"]},{"v0":206,"v1":207,"color":"1BA148","cMask":["wall"],"cGroup":["all"]}],"planes":[{"normal":[0,1],"dist":-635,"_data":{"extremes":{"normal":[0,1],"dist":-635,"canvas_rect":[-3825,-1905,3825,1905],"a":[-3825,-635],"b":[3825,-635]}}},{"normal":[0,-1],"dist":-635,"_data":{"extremes":{"normal":[0,-1],"dist":-635,"canvas_rect":[-3825,-1905,3825,1905],"a":[-3825,635],"b":[3825,635]}}},{"normal":[1,0],"dist":-1275,"_data":{"extremes":{"normal":[1,0],"dist":-1275,"canvas_rect":[-3825,-1905,3825,1905],"a":[-1275,-1905],"b":[-1275,1905]}}},{"normal":[-1,0],"dist":-1275,"_data":{"extremes":{"normal":[-1,0],"dist":-1275,"canvas_rect":[-3825,-1905,3825,1905],"a":[1275,-1905],"b":[1275,1905]}}}],"goals":[{"p0":[-1206.25,-105],"p1":[-1206.25,105],"team":"red"},{"p0":[1206.25,105],"p1":[1206.25,-105],"team":"blue"}],"discs":[{"radius":6.25,"invMass":1.5,"pos":[0,0],"color":"FFB300","bCoef":0.4,"cGroup":["ball","kick","score"],"_data":{"mirror":{}},"_selected":true},{"radius":6,"invMass":0,"pos":[-1200,-105],"color":"182540"},{"radius":6,"invMass":0,"pos":[1200,-105],"color":"182540"},{"radius":6,"invMass":0,"pos":[-1200,105],"color":"182540"},{"radius":6,"invMass":0,"pos":[1200,105],"color":"182540"},{"radius":1e-9,"pos":[0,-79],"color":"1BA148","bCoef":1,"cMask":["wall"],"cGroup":["wall"],"damping":1,"speed":[5,0]},{"radius":1e-9,"pos":[0,79],"color":"1BA148","bCoef":1,"cMask":["wall"],"cGroup":["wall"],"damping":1,"speed":[-5,0]},{"radius":1e-9,"pos":[65,-40],"bCoef":1,"cMask":["wall"],"cGroup":["wall"],"damping":1},{"radius":1e-9,"pos":[65,40],"color":"1BA148","bCoef":1,"cMask":["wall"],"cGroup":["wall"],"damping":1},{"radius":1e-9,"pos":[-65,40],"color":"1BA148","bCoef":1,"cMask":["wall"],"cGroup":["wall"],"damping":1},{"radius":1e-9,"pos":[-65,-40],"color":"1BA148","bCoef":1,"cMask":["wall"],"cGroup":["wall"],"damping":1}],"playerPhysics":{"bCoef":0,"acceleration":0.11,"kickingAcceleration":0.083,"kickStrength":5.2},"ballPhysics":"disc0","spawnDistance":400,"joints":[{"d0":5,"d1":7,"color":"1BA148","length":75.8023746329889},{"d0":6,"d1":8,"color":"1BA148","length":75.8023746329889},{"d0":6,"d1":9,"color":"5C12","length":75.8023746329889},{"d0":9,"d1":10,"color":"1BA148","length":80},{"d0":5,"d1":10,"color":"5C12","length":75.8023746329889},{"d0":7,"d1":8,"color":"5C12","length":80}],"canBeStored":false,"traits":{},"redSpawnPoints":[],"blueSpawnPoints":[]}`, }, Castles: [ { id: 0, x1: -150, y1: 148, x2: -135, y2: 164, team: TeamEnum.RED, avatar: 1, }, { id: 1, x1: -175, y1: 55, x2: -155, y2: 70, team: TeamEnum.RED, avatar: 3, }, { id: 2, x1: -130, y1: -10, x2: -108, y2: 10, team: TeamEnum.RED, avatar: 6, }, { id: 3, x1: -197, y1: -70, x2: -177, y2: -55, team: TeamEnum.RED, avatar: 8, }, { id: 4, x1: -110, y1: -98, x2: -90, y2: -83, team: TeamEnum.RED, avatar: 10, }, { id: 5, x1: -158, y1: -166, x2: -138, y2: -146, team: TeamEnum.RED, avatar: 9, }, { id: 6, x1: 138, y1: 142, x2: 152, y2: 165, team: TeamEnum.BLUE, avatar: 1, }, { id: 7, x1: 120, y1: 55, x2: 145, y2: 80, team: TeamEnum.BLUE, avatar: 3 }, { id: 8, x1: 168, y1: -7, x2: 195, y2: 35, team: TeamEnum.BLUE, avatar: 6 }, { id: 9, x1: 98, y1: -75, x2: 125, y2: -50, team: TeamEnum.BLUE, avatar: 8, }, { id: 10, x1: 180, y1: -100, x2: 204, y2: -75, team: TeamEnum.BLUE, avatar: 10, }, { id: 11, x1: 140, y1: -160, x2: 165, y2: -135, team: TeamEnum.BLUE, avatar: 9, }, ], Physics: { ofsaytSurme: 100, playerRadius: 15, tacCizgiTimes: 1, maxcizgiSayisi: 3, onuneAtmaUzaklik: 200, araPasMesafeY: 150, minHizDegis: 0.6, yayHiz: 8, ballSurtunmeKatsayisi: 0.99, playerSurtunmeKatsayisi: 0.96101, playerIvme: 0.11, maxPasAlmaMesafesi: 230, maxPasKovalamaMesafesi: 160, minPowerShotSpeed: 10, maxShootPower: 1.7, minSpeed: 0.002, yavasSpeed: 0.5, kaleDeviation: 10, topYakalamaHizi: 2, ayagaPasYakalamaMesafesi: 10, ayagaPasMinYakalamaHiz: 0.4, ayagaPasMaxYakalamaHiz: 2, minKurtarmaSutHizi: 1.7, ayagaPasUzaklik: 40, playerCoeff: 0, ballCoeff: 0.4, playerMass: 2, ballMass: 1 / 1.5, rsVs4: { ballRadius: 8, stadiumWidth: 1164, stadiumHeight: 550, tacCizgi: 478, tacCizgiFark: 500, cezaSahaCizgiX: 840, cezaSahaCizgiY: 250, kaleX: 1150, kaleY: 110, kornerRadius: 290, kornerCizgiX: 1150, kornerCizgiY: 550, kornerNoktaX: 1200, kornerNoktaY: 565, autNoktaX: 1190, autNoktaY: 200, maxCizgiX: 1150, sutMesafesi: 585, direkRadius: 5, direkX: 1150, direkY: 110, tacNoktaY: 575, tacCezaY: 560, tacSutSinir: 530, }, rsVs6: { ballRadius: 6.25, stadiumWidth: 1207, stadiumHeight: 600, tacCizgi: 578, tacCizgiFark: 500, cezaSahaCizgiX: 785, cezaSahaCizgiY: 425, kaleX: 1206, kaleY: 105, kornerRadius: 340, kornerCizgiX: 1200, kornerCizgiY: 600, kornerNoktaX: 1451, kornerNoktaY: 672, autNoktaX: 1450, autNoktaY: 245, maxCizgiX: 1400, sutMesafesi: 400, direkRadius: 6, direkX: 1200, direkY: 95, tacNoktaY: 690, tacCezaY: 675, tacSutSinir: 630, }, //rede göre blue da - ile çarpıp kıyaslama tersine çevrilir BolgelerV6: [-900, -185, 0, 185, 900, 1400], BolgelerV4: [-740, -150, 0, 150, 740, 1150], }, Strings: { General: { startMatch: "? ???? ???????? , ??? ??????????.", duyuru: "? ʜᴄʟ'ᴇᴀɢᴜᴇ ғᴜᴛꜱᴀʟ | ᴠ6 ᴏᴛᴏʙᴏᴛ ᴏᴅᴀꜱɪɴᴀ ʜᴏꜱɢᴇʟᴅɪɴɪᴢ.", fazlaMesaj: "❌ {0} ᴋᴀʀᴀᴋᴛᴇʀᴅᴇɴ ғᴀᴢʟᴀ ʏᴀᴢɪ ʏᴀᴢᴀᴍᴀᴢꜱɪɴ.", komutlar: "? ????????: !f !sıram !vipler !boosterlar !sıra !maçınadamı !adminçağır !dk !şifremideğiştir şifre !skorum !gol !asist !gk !cs !dm !rütbeler !rütbem !oyla !oylalistesi !afk !onlinesürem !enonline !değiş !rankres !afklar !power !sade !boosterne", adminkomutlari: "!bb !konuşun !susun !mute(dakika id ) !unmute(id) !oylalistesi !bankaldır !v4 !v6 !mutelistesi", afkol: " ? ??? ᴏʟᴅᴜɴ (ꜱᴀᴅᴇᴄᴇ 2 ᴍᴀᴄ)", afkdegil: "? ᴀʀᴛɪᴋ ??? ᴅᴇɢɪʟꜱɪɴɪᴢ", selam: "ᴍᴇʀʜᴀʙᴀ, ᴏᴅᴀᴍɪᴢᴀ ʜᴏꜱɢᴇʟᴅɪɴ, ɪʏɪ ᴇɢʟᴇɴᴄᴇʟᴇʀ ᴅɪʟᴇʀɪᴢ.", oyal: "✔️ ᴏʏᴜɴᴜᴢ ᴀʟıɴᴅı. {0} : {1}", sonraOyla: "? 2 ᴅᴀᴋɪᴋᴀ ꜱᴏɴʀᴀ ᴛᴇᴋʀᴀʀ ᴏʏʟᴀʏᴀʙɪʟɪʀꜱɪɴɪᴢ.", konusmaAcildi: "? {0}, ?????????? ????? ?????.", sustur: "❌ {0} {1} ?????? ??????????.", golVeAsist: "⚽ ?????! Golü Atan [{0}] - Asisti yapan [{1}] ? {2}", gol: "⚽ ?????! Golü Atan {0} ? {1}", kkGol: "⚽ ?????! {0} Kendi kalesine ? {1}", sec: "? ?????? ????? !", kendiniOylama: "⚠️ Kendini oylayamazsın !", izleyiciSecemez: "⚠️ İzleyiciler oyuncu seçemez !", secemez: "⚠️ {0}, bu durumda seçemezsiniz !", secimZamaniDegil: "⚠️ Seçim zamanı değil, seçemezseniz !", aut: "? [A] Kale Vuruşu", korner: "? [K] Köşe vuruşu", maviTac: "? [B] Taç mavi takımda", redTac: "? [R] Taç kırmızı takımda", afkOlamaz: "❌ Maç oynanırken AFK olamazsınız !", gkBelirle: "? RED GK: {0} ? BLUE GK: {1}", golYemedi: "? {0} gol yemedi.", rank: "? {0} = ⚽ gol:{1}, ? asist:{2}, ? cs:{3}, ❌ og:{4}", toplaOynama: "ᴛᴏᴘʟᴀ ᴏʏɴᴀᴍᴀ : ? RED: %{0} - ? BLUE: %{1}", redKazaniyor: "? ??? ➔ {0} ?????? ?????????.", blueKazaniyor: "? ???? ➔ {0} ?????? ?????????.", ofsaytVurma: "⚠️ Ofsayt! Vurma Topa!", ofsayt: "? Ofsayt ! ({0})", golOfsayt: "❌ Gol geçersiz. Ofsayt ! Salın topu.", sameNameKickNote: "Aynı isimde oyuncu var !", sameTabKickNote: "Sekme Tespiti Engellenmiştir. Yapmayınız!", cizgiyiGecme: "⚠️ Çizgiyi geçme! {0}{{1}}", kickCizgiyiGecme: "Çizgi kuralına uymadığınız için atıldınız !", kickOfsayt: "Ofsayt kuralına aykırı hareketinizden dolayı atıldınız !", admin: "★ ᑭᑌᗷ ᗩᗪᗰİᑎİ GEᒪᗪİ ★", superAdmin: "★·.·´¯·.·★ sᴜᴘᴇʀ ᴀᴅᴍİɴ ɢᴇʟᴅİ ★·.·´¯·.·★", saniyedeAtilmak: "? @{0}, ʜᴀʀᴇᴋᴇᴛ ᴇᴛᴍᴇᴢsᴇɴ ᴠᴇʏᴀ ᴍᴇsᴀᴊ ʏᴀᴢᴍᴀᴢsᴀɴ {1} sᴀɴɪʏᴇ ɪᴄɪɴᴅᴇ, ᴏᴅᴀᴅᴀɴ ᴀᴛɪʟᴀᴄᴀᴋsɪɴ.", dontKickAzOynadi: "❌ {0} az oynadığı için odadan atılmadı !", kickPuan: "Puanınız Ve Oynayışınız Odamız İçin Uygun Değildir.! Puanınız, atak:{0} defans:{1}", hukmenPenRed: "❌ Oyuncu çıktığı için RED hükmen kazandı! ?", hukmenPenBlue: "❌ Oyuncu çıktığı için BLUE hükmen kazandı! ?", penSureDoldu: "??????? ?????? ?????", }, CommandResponse: { kickLink: "Link göndermek yasaktır !", help: "? ??? ?????? {0}, ᴋᴏᴍᴜᴛʟᴀʀ ?!ᴋᴏᴍᴜᴛʟᴀʀ ?!ᴀᴅᴍɪɴᴋᴏᴍᴜᴛʟᴀʀɪ ???????? : ", oyla: "? Oylamak için !oyla numara yazın, liste için: !oylalistesi", }, }, }; var GameState = { NONE: 0, MATCHSTARTED: 1, SELECTEDPLAYER: 2, KICKOFF: 3, PENALTY: 4, }; var MapState = { CLASSIC: 0, Big: 1, RSV4: 2, MRS: 3, Penalty: 4, Dizilim: 5, RSv6: 6, }; var RsV6MapState = { POWER: 0, YAYLI: 1, SADE: 2, }; var TacDurum = { YOK: 0, TAC: 1, KULLANMA: 2, DOKUNMA: 3, }; var AutDurum = { YOK: 0, AUT: 1, KULLANMA: 2, DOKUNMA: 3, }; var KornerDurum = { YOK: 0, KORNER: 1, KULLANMA: 2, DOKUNMA: 3, }; var PasTipi1Enum = { YANPAS: 0, DIKPAS: 1, GERIPAS: 2, }; var PasTipi2Enum = { TEKPAS: 0, NORMAL: 1, }; var PasTipi3Enum = { ARAPAS: 0, NORMAL: 1, }; var PasTipi4Enum = { ONUNEPAS: 0, AYAGAPAS: 1, }; var SutTipiEnum = { ISABETLI: 0, AUT: 1, KORNER: 2, TAÇ: 3, DIREK: 4, CARPMA: 5, }; var TemasTipiEnum = { TEMAS: 0, PAS: 1, SUT: 2, KONTROL: 3, ORTA: 4, KALEVURUSU: 5, MUDAHALE: 6, CARPMA: 7, SURME: 8, KURALSIZ: 9, DISARDAN: 10, TAC: 11, KURTARMA: 12, }; var TemasBolgeEnum = { BIRINCI: 0, IKINCI: 1, UCUNCU: 2, }; var PenaltyState = { NONE: 0, SECILDI: 1, VURMA: 2, KULLANDI: 3, }; var DisariDurum = { TAC: 0, KORNER: 1, AUT: 2, }; var KurtarmaTipiEnum = { BASARILI: 0, BASLANGIC: 1, DEVAMEDEN: 2, BITEN: 3, }; var TehlikeliAtakState = { KALECIYLEKARSIKARSIYA: 0, BOSKALE: 1, }; var Kurtarma = class Kurtarma { constructor() { this.tip = -1; this.kaleyeDogru = false; this.sert = false; } }; var Pas = class Pas { constructor() { this.alanPlayerId = -1; this.tip1 = -1; this.tip2 = -1; this.tip3 = -1; this.tip4 = -1; this.ofsayt = false; } }; var Sut = class Sut { constructor() { this.sutTipi = -1; this.yay = false; } }; var Orta = class Orta { constructor() { this.alanPlayerId = -1; this.isabetli = false; } }; var KaleVurusu = class KaleVurusu { constructor() { this.alanPlayerId = -1; this.isabetli = false; } }; var Mudahale = class Mudahale { constructor() { this.tersVurus = false; this.kesme = false; this.uzaklastirma = false; } }; var Temas = class Temas { constructor() { this.id = -1; this.tip = -1; this.bolge = -1; this.playerId = -1; this.team = -1; this.sut = null; this.pas = null; this.orta = null; this.kaleVurusu = null; this.mudahale = null; this.kurtarma = null; this.asist = false; this.gol = false; this.kk = false; this.kkYardim = false; this.golKatki = false; this.hataGol = false; this.ofsayt = false; this.direk = false; this.topKaybi = false; this.topKazanma = false; this.ballPos = { x: 0, y: 0 }; this.ballSpeed = { x: 0, y: 0 }; this.prevBallPos = { x: 0, y: 0 }; this.prevBallSpeed = { x: 0, y: 0 }; this.playerPos = { x: 0, y: 0 }; this.playerSpeed = { x: 0, y: 0 }; this.map = -1; this.rsV6Map = -1; this.vurma = false; this.subTemas = null; this.parentTemas = null; this.disariDurum = -1; } static Add(v) { v.playerId = gameContext._lastTouchedPlayerId; let ball = room.getDiscProperties(0); let p = gameContext.getPlayerById(v.playerId); let pDisc = room.getPlayerDiscProperties(v.playerId); if (ball == null || p == null || pDisc == null || p.cezali) { return null; } v.team = p.team; v.ofsayt = gameContext.isOffside(); v.map = gameContext.getMapState(); v.rsV6Map = v.map == MapState.RSV4 ? RsV6MapState.POWER : gameContext.getRsV6State(); v.ballPos.x = ball.x; v.ballPos.y = ball.y; v.playerPos.x = pDisc.x; v.playerPos.y = pDisc.y; v.playerSpeed.x = pDisc.xspeed; v.playerSpeed.y = pDisc.yspeed; v.prevBallPos = { x: gameContext._lastBallPos.x, y: gameContext._lastBallPos.y, }; v.prevBallSpeed = { x: gameContext._lastBallSpeed.x, y: gameContext._lastBallSpeed.y, }; let stad = gameContext.getStadMeasure(); if (v.team == TeamEnum.RED) { if (v.playerPos.x <= -stad.sutMesafesi) { v.bolge = TemasBolgeEnum.BIRINCI; } else if (p.position.x >= stad.sutMesafesi) { v.bolge = TemasBolgeEnum.UCUNCU; } else { v.bolge = TemasBolgeEnum.IKINCI; } } else if (v.team == TeamEnum.BLUE) { if (v.playerPos.x >= stad.sutMesafesi) { v.bolge = TemasBolgeEnum.BIRINCI; } else if (p.position.x <= -stad.sutMesafesi) { v.bolge = TemasBolgeEnum.UCUNCU; } else { v.bolge = TemasBolgeEnum.IKINCI; } } v.id = ++Temas.count; gameContext.temaslar.push(v); return v; } }; Temas.count = 0; var GameContext = class GameContext { constructor() { this._state = GameState.MATCHSTARTED; this._isPause = false; this._mapIndex = 0; this._extraStartGamefunc = () => {}; this._extraStopGamefunc = () => {}; this._extraStadiumChangeGamefunc = () => {}; this._playerInformation = []; this._lastTouchedPlayerId = null; this._prevTouchedPlayerId = null; this._lastActiveTouchedPlayerId = null; this._prevActiveTouchedPlayerId = null; this._prevDifferentActiveTouchedPlayerId = null; this._lastBallSpeedOnTouchedPlayer = { x: 0, y: 0 }; this._lastScores = 0; this._isBallOutsideStadium = false; this.mapState = 0; this.lockTeamChange = false; this.degisenTakim = TeamEnum.SPECTATORS; this._playerPositionsOnTouched = []; this._offsideMinPlayerIndex = 0; this._redOffsideLine = -this.getStadMeasure().stadiumWidth; this._blueOffsideLine = this.getStadMeasure().stadiumWidth; this._ofsaytVurma = 0; this.kickOfsaytVurursa = false; this._tacDurum = TacDurum.YOK; this._tacTakim = 0; this._tacCizgiLock = false; this._autDurum = AutDurum.YOK; this._autTakim = 0; this._autCizgiLock = false; this._kornerDurum = KornerDurum.YOK; this._kornerTakim = 0; this._kornerCizgiLock = false; this.topunHizi = { x: 0, y: 0 }; this.oncekiTopKonumu = { x: 0, y: 0 }; this.redToplaOynama = 0; this.redToplaOynamaTime = 0; this.blueToplaOynama = 0; this.blueToplaOynamaTime = 0; this.redUstUsteKazanma = 0; this.blueUstUsteKazanma = 0; this._lastBallPositionIfHit = { x: 0, y: 0 }; this._lastPlayerPositionIfHit = { x: 0, y: 0 }; this.superAdminGiris = false; this.authPlayer = null; this._extraUpdateFunc = () => {}; this.lockGameStart = false; this.lockGameStop = false; this.penRedTeam = []; this.penBlueTeam = []; this.penRedGK = null; this.penBlueGK = null; this.penStriker = null; this.penKullanTeam = 0; this.penRedGoal = 0; this.penBlueGoal = 0; this.penRedAtma = 0; this.penBlueAtma = 0; this.penaltyState = 0; this.isStop = true; this.yasaklilar = [ { name: "varidat", auth: "G1qtkUNZmi8PXM9Qh6BV7KlhNGPwq3HlorkXsVssI3o", conn: "3137362E33332E3234362E3536", }, { name: "Vevo", auth: "I3x-af5xSDwztuKBNZvirOBPrNAhpRFeYVPWCJl3G1I", conn: "38382E3233302E39382E3330", }, { name: "Cannabinoid", auth: "PXObHJoDXGneV7Roff69X0nMp_gjpdoF5vpTslbStvQ", conn: "37382E3137342E352E323034", }, { name: "LakeNN", auth: "s_yd3N_V_CTLe1gYDid235tm4pGsdZ_2uSPCASSWiXE", conn: "38382E3233332E32322E32", }, { name: "Nova", auth: "9djP7p8Hp163jTD3mfoSLs4msMUpUAgXJjnqnCNNHBE", conn: "39352E37302E3135342E313932", }, { name: "$ kun", auth: "NrAvYF8QSZ28mbvlf4n1LkN6lYpzvZg-t8Yjgz4dnwk", conn: "3137362E34302E33382E313338", }, { name: "CRIXUS", auth: "-NVrWFM-o_zS3H1c859W9CQOnU9Ji1Zfpvh4si3XD_g", conn: "3137362E34322E3234372E313138", }, { name: "MEÇ", auth: "3TPwQHoG7TAV5RRY_2T1i-Lw61dyazfee1kCfssrI-A", conn: "39342E3132332E3139322E3938", }, { name: "SVETLI", auth: "-5LQWba78nAQiakM5raAibC7jzRucUWY0p5V0ZTDwpY", conn: "3137382E3235342E3233372E3837", }, { name: "Tapar", auth: "WLbTqQcFgyya8TcLf64EptkLFVRB3sJY8e6DujF3WwA", conn: "37382E3139312E3136342E3439", }, { name: "KEL", auth: "pJTqy9KWJcza8UpCMIVVOjkjtqME6hjKFqPXko4-PIg", conn: "39322E34352E3235302E313538", }, { name: "MARESAL", auth: "PjJZCCakjyLQyQW4bscQD5tMsvvYoP8v4iXXBj2-Qa0", conn: "3137382E3233332E3230392E313035", }, { name: "Aka", auth: "vrZRUmW5LJq_hr2aT84V-F9BXlmZ48B6ZKlyq3dGEik", conn: "3137362E38382E33312E313633", }, { name: "Kürt Tarihi", auth: "hgtnMeMw749N-8uzQcIGCSm4joOzuBBMvDYnYl5c-CU", conn: "3231322E3135342E35372E313733", }, { name: "balici", auth: "eeIvtnjiqUNPOhVxP550BmG3p4VEgp6i0HTzPz9KU3w", conn: "32342E3133332E3133372E313334", }, { name: "Elysîôn", auth: "Agre0XIz2X_BIWghfU0mcJnOqZw1dS5B7egluE5USKg", conn: "3137362E33332E34302E3837", }, { name: "Jet Sosyete", auth: "bWw3XWk5ZK_P2aqP3IVKQ2k-SjmdA4STgJI25A4aWC0", conn: "38382E3234362E3139322E36", }, { name: "Ren", auth: "QPTpeAw_rxP9gMZxbksbq3RFj6nZGFluslsLH4yRxZ4", conn: "37382E3137372E39322E313238", }, { name: "Tayyiphoplatan™", auth: "1vNv5FZCdlC2QCKxp5otO7RANGRceD9H2C3tewwX-u8", conn: "3137362E3234302E3232342E323132", }, { name: "SEXY KÖYLÜ 2", auth: "8BtY9_w3vHn9o9AGMFHkZJBXt1FZRZUjeRemDiZNSws", conn: "37382E3137302E3132322E3934", }, { name: "ANANIN AMI", auth: "3PycBK_94ssJgRjbx5D3y-QYINWJn_JE0fI_BkHz3ck", conn: "3137362E34312E3233302E3131", }, { name: "allahın amına koyim", auth: "KXK4MSESozyn1rWhTJx4bXGBk7NCB7sPQxroYxttHs8", conn: "38352E3131302E3230382E313531", }, { name: "Aka", auth: "vrZRUmW5LJq_hr2aT84V-F9BXlmZ48B6ZKlyq3dGEik", conn: "3137362E38382E33312E313633", }, { name: "abbuş", auth: "qbjo2TTPlTxjz0YdfjH32kNU8Sj7e5q5djfnSD_1QVQ", conn: "38382E3235322E3133342E323335", }, { name: "Tedricen", auth: "7CEjsijn3gHZZnVwYCptEkjk2V_vTftS6MrLLNTR7kA", conn: "3137362E34312E3233302E3131", }, { name: "ENdLeSS", auth: "m9qPhKO6-sXFutFNYjHYPAHGZwukvQ-bfrmzuwtZeeU", conn: "38382E3233302E3135372E3132", }, { name: "Lil Zey", auth: "A3O37y5rg7a0w2npjexUXR5Gu-X7HzcPFv3Sc5u933U", conn: "38382E3233302E3134372E323038", }, { name: "arzuya götten sex", auth: "J-u7zYLlITQvC-F9qHi-vG77iu47uIUvm4L9CVDt0-A", conn: "3137362E38382E34352E313838", }, { name: "leslie", auth: "9R8L3u3sM2Hq_mzz0YDODzHzsNv7kf3iO3JK0zKTTn8", conn: "38352E39372E37352E313030", }, { name: "Laz Ömer", auth: "ZfoQhVJ9aAllhArrAnDSa0eVXkstOdXUaFxmMDZNv50", conn: "3130342E3234332E3231322E3531", }, { name: "Yüce Hülagü Han", auth: "XUHZMvMzmrgcx_Dbk-iZbMCJ6ejJbe6o6-vOt0EZV4k", conn: "37382E3139302E3131312E3430", }, { name: "İSTANBULLU GELİN", auth: "v-Ex3j4hbeGzusce1AAiB3v38v88WT0B0s8x7gV_SJc", conn: "37382E3137302E3132322E3934", }, { name: "Falcao #9#", auth: "gNd6gJPo3EEvyEf0GqiVnmltyx80jwMmjHXoVaXQMBc", conn: "39352E31302E3138322E323237", }, { name: "takao", auth: "Sa38GneFmjXK_o_j8uRVRzui4t5YRgk3h3UDXQ17pb4", conn: "38382E3233302E39362E313537", }, { name: "Allah (CC)", auth: "PXObHJoDXGneV7Roff69X0nMp_gjpdoF5vpTslbStvQ", conn: "37382E3137342E352E323034", }, { name: "TECAVÜZ DARP VE GASP", auth: "RxG7_pxgflp3Jnso64jA9pbTlx1d-qeDa62ZSGc0a0M", conn: "38382E3234332E3135342E313939", }, { name: "oç", auth: "-wADcDSuyy76UDidTNzOu2UKpTx48rrclhtTNmLhR3M", conn: "37382E3137352E3232392E313234", }, { name: "ADNAN OKTAR", auth: "ZfoQhVJ9aAllhArrAnDSa0eVXkstOdXUaFxmMDZNv50", conn: "32332E3234392E3137322E313831", }, { name: "SEHIT KANI ICEN", auth: "dakEFBxDSqX5KF1uQTGRtfZGm71lEwd-_NGBLXSXuKY", conn: "38382E3232382E3138362E323436", }, { name: "ampute necmi", auth: "u8CjrNNCL6SyUuh1z7yqFmsBPKvBE41umSXIINtf6f4", conn: "3137362E38382E3133392E323432", }, { name: "ALLAH", auth: "PXObHJoDXGneV7Roff69X0nMp_gjpdoF5vpTslbStvQ", conn: "37382E3137342E352E323034", }, { name: "ALLAHI KİTABI SİKERİM", auth: "UoYkfYqI07M98MZ-snB8Y268dSE9ylJx06RhqVogzjU", conn: "38382E3233302E31352E3438", }, { name: "İNANDIĞINIZ ALLAHI SİKİM", auth: "t0TXTi2PFLrn2nBZCNnBLNTN9R_26At0gTXnhWSowpY", conn: "3137362E3231382E31372E3632", }, { name: "lapsekili tayfur/ geceler", auth: "GKVB1WDInVMDsto_GQSJ32tLneUB8zjV05bFiSzBduM", conn: "38382E3233322E3232322E313832", }, { name: "Uğurcan", auth: "L1QMH5ciuoaPJX03qbBsSIQQwsMKKjJM4Ni8F7HtkX0", conn: "3137362E3233332E38382E323233", }, { name: "Fabri", auth: "x-WJPOBXKDMmoh7PHwgwvS_Z8Ktu9P20v8Eb5qoBtfI", conn: "38352E39362E3231342E313337", }, { name: "SUN TZU", auth: "XFE1DNgIaREAgqNwu5T2pg9zz4DX97Nmg0ZL6ViR-ik", conn: "32342E3133332E3132352E313638", }, { name: "Furkan Ataseven", auth: "riyCx8TODVHVqU8lpFMr9BuAWDpI4AlQ358ybV-ewyw", conn: "3137382E3233332E3134342E313339", }, { name: "Furkan Ataseven2", auth: "riyCx8TODVHVqU8lpFMr9BuAWDpI4AlQ358ybV-ewyw", conn: "3137382E3233332E3134342E313339", }, { name: "Furkan Ataseven $CUMSHOT", auth: "riyCx8TODVHVqU8lpFMr9BuAWDpI4AlQ358ybV-ewyw", conn: "3137382E3233332E3134342E313339", }, { name: "FADAMEL RALCAO", auth: "MGGFbWsAb1xk_tVz0iry-_GGockNbvrapeqodJbY73g", conn: "38382E3234302E3235302E33", }, { name: "JARDEL", auth: "ztNLlJfrl8_NjOrJcCSKyL03Xl098O0fb_HuJ8x4Sus", conn: "37382E3138302E32372E3238", }, { name: "MMaRaFoNa", auth: "XUHZMvMzmrgcx_Dbk-iZbMCJ6ejJbe6o6-vOt0EZV4k", conn: "37382E3139302E3130382E313435", }, { name: "beylikdüzü pasif agresif", auth: "jqwesaHzkp7cbe9vK_GhsVEvNHdwR8d8hojBzqL5e5U", conn: "38382E3233302E3134332E323234", }, { name: "Furkan Ataseven3", auth: "riyCx8TODVHVqU8lpFMr9BuAWDpI4AlQ358ybV-ewyw", conn: "3137382E3233332E3134342E313339", }, { name: "atatürk is shit", auth: "H5wvsauI3M0tnm76uVf35eVXFYVwrhmZsAZEQRQ4mEc", conn: "322E3230362E3130382E313139", }, { name: "Hülya'yı Siken Adam", auth: "3HS_WaTpRbfHVh9B2ZdbTf4rVjsxo0tNRuZzFxQ6SBU", conn: "39352E31302E31382E3239", }, { name: "Ognjen", auth: "OT-ynAeudsqQFNiAn80eOsd-IDnDAv7QdRGGWFPPCC4", conn: "38312E3231352E38382E3237", }, { name: "R.Lewandowski", auth: "Hok7JtSS38BEVHaQO0zmJXTDplwc2KV8kKZLGlMIZcE", conn: "37382E3138352E35362E313538", }, { name: "Phil Foden", auth: "jyv2YmTKVrkm3Nm3dMmUJnhAhGSUTpjFBoPPjx5uk7c", conn: "37382E3136332E3131362E323331", }, { name: "Dust", auth: "7Kwpnxksz0a2l6fTeF56dMz984DRojWa1HbZ0-yth9I", conn: "38382E3233302E39392E323038", }, { name: "єαяᴛʜ ѕᴛαя", auth: "4CoSD6rY_brZPIycI3-hBsDAjYUe5-yqHhBXXI-XvEQ", conn: "3137362E38382E38322E323339", }, { name: "merih demiral adam mıdır?", auth: "itff0FKtWQk0VA1nZhXEEy50JffkaIGgBUqvxrPS11E", conn: "37382E3137372E39332E313536", }, { name: "ÖzgürU478", auth: "AwsPVDQVZNeZgUiPWM3fU89lRDIrUqjGGbJZzUtH5_Y", conn: "38382E3234312E35332E313330", }, { name: "Krusé", auth: "ICl_ffI5Hj_bpZUaJHh7RyP17TRcXBlEUFg2W-K6-BQ", conn: "38382E3233362E36342E313831 ", }, { name: "jose olajuan", auth: "oX8wVWzYwT76bC587dPqAyA1pkm_Bqe1QXRt7lKDsXQ", conn: "3137362E33302E37322E313938", }, { name: "Ren31", auth: "t_mzflklK-s2dIW9Ngozl1rW7lyshna2J4Ye1mOSAjw", conn: "37382E3137372E39332E313536", }, { name: "qwueqwue", auth: "FX5QmKmxCy72oc-fuTVfBnOwPZyUk7vdXLoF-KPhRdI", conn: "38382E3233332E3133322E3132", }, { name: "sniperen", auth: "bMsL8I_l0_UgHu8VfFV4Oxhi2_NG1258HYGUrZyvYz0", conn: "39352E352E3133302E313735", }, { name: "dem ba (c)", auth: "tEf7ih1pDjcTHbEAqBCc-YCZWgy14auaZGYJrCRho7I", conn: "37382E3136372E32352E313739", }, { name: "Ren ( BANLAYAN 0C )", auth: "CkOyoNVrXyX5eIMPXRnrj7z2Ki0mAdaAHZV51vf1-a0", conn: "37382E3137372E39332E313536", }, { name: "اللهyok", auth: "5cNEzBRtuAZon7ejq8HD-VTY5FfOQ4vdrfUuMm6pczU", conn: "3137362E3231382E39302E313030", }, { name: "AFUMX", auth: "PcdnGJqO9gpvish0aVCudIof2FFReVljUomdu9j3PiM", conn: "37382E3136372E342E3731", }, { name: "Szumanjski", auth: "iBxzWi-wxzpE9JRUgTM0vvwk22BMq1u_dQBilJMGqcU", conn: "38382E3233382E38342E313130", }, { name: "MMMaRaFonaa", auth: "XUHZMvMzmrgcx_Dbk-iZbMCJ6ejJbe6o6-vOt0EZV4k", conn: "37382E3139302E3130392E313330", }, { name: "VAHAP SEÇER", auth: "RvTicg3EdwaXRnAs6m8hjUKkSrMCiFbxGt4Q_KKyUAc", conn: "39352E37302E3135342E313130", }, { name: "Winged", auth: "XUHZMvMzmrgcx_Dbk-iZbMCJ6ejJbe6o6-vOt0EZV4k", conn: "37382E3139302E3130382E313431", }, { name: "Samet YapaR", auth: "AD3NCzutfx9544Io0Xm41Uenkt51UnMG32Zo8xMEdpM", conn: "3139332E3137362E38342E323331", }, { name: "sargass", auth: "5lm6jnVp2oOpbuhfvUZze_stOtRqoSkM0KJoaAuWncI", conn: "38312E3231352E3233392E3635", }, { name: "Marlon", auth: "ScrtyES57Y-d0M-Yze2mjCy3rZY3NE7iFza24TcKB2s", conn: "3137362E34332E34342E3731", }, { name: "Sonic", auth: "OKAmlpCOh9_74Tgl1GYc0XigJw9xidxInY1t_gar6jg", conn: "38352E3130332E3131312E35", }, { name: ":banana::banana::banana::banana::banana::banana::banana:", auth: "54PdZfo-VSwnaAsaVbmArf-1YybExGRnHG5LPfepv_c", conn: "38382E3233302E3130312E313432", }, { name: "dedeler", auth: "SlYiJ5f0fPtbz8al2PO9Hk0_txgnzvgAvnwJkMgFN9A", conn: "3130392E3232382E3234332E3830", }, { name: "Söğüş", auth: "pQQpNDbw4DAU-Qu0v4ZIJaR7Ye033z4s8J4sod1CInk", conn: "37382E3138352E3232382E3237", }, { name: "Jahréinn", auth: "clwNz14X6fQ6Ddg11Y_Orqq-9FQfR4GTBW3PKu-A1oM", conn: "37382E3139302E3130392E3236", }, { name: "Ramos Sakso çeken gaydır", auth: "clwNz14X6fQ6Ddg11Y_Orqq-9FQfR4GTBW3PKu-A1oM", conn: "37382E3139302E3130392E3236", }, { name: "Lionel S", auth: "Z-RXYbXeR7yIHfCj_MVOt7EsNz1JU2rr4sd9UXGT_UY", conn: "38352E3135332E3233372E313736", }, { name: "kahpebizans", auth: "C_PUe5dY431ONy9oDAewWtwqdW_A9Ha3_NM7BC2S0aM", conn: "37382E3138392E34312E313832", }, { name: "Amya Layan", auth: "gCs4ZtKKSqIHNKQFXHp7JFkslxIlpvkddjxbpQtDP9s", conn: "3137362E34332E34342E3731", }, { name: "ATATÜRKÜNLEŞİNİSİKEN2", auth: "RvTicg3EdwaXRnAs6m8hjUKkSrMCiFbxGt4Q_KKyUAc", conn: "3135392E3134362E31332E313239", }, { name: "mokoko", auth: "RmeGzOw56avcA2_gYNTGMAscavcs7vj52Wir3s4cASs", conn: "37382E3138332E3131362E3534", }, { name: "MEKKE ESKORT AİŞE", auth: "S_EqzS8eb2rNWn_nj1OM7u8_O8EpSE5E4GZAUD5m568", conn: "38382E3233302E3130302E3230", }, { name: "Slachers", auth: "apmx3EIl1sCyDLm8OwYG7KE2R_fg8cRvZOLGrKZ92bI", conn: "38352E3135332E3230342E323530", }, { name: "Wexler", auth: "C9an66s-rVSGtwPC2iP9wrqtyEx0NyvUlt-2934m2Hw", conn: "37382E3136302E3136312E3335", }, { name: "Aveng", auth: "oIyrX-fpDnU91yms1uDbFsJlDPpkLhdtAm3VeL1ed88", conn: "34362E3139372E38302E313930", }, { name: "selimm", auth: "F5n75VEfRo0Dl43WnJITn7rM9Tei7WROXToVhOX6-0I", conn: "3137362E34302E33352E3436", }, { name: "ço nimda", auth: "SK7JIMo0qHpO9YE1HWRFLFb08lo_dl4GyHaLC5wQWkA", conn: "38382E3234302E35302E3637", }, { name: "ADMİN BAK SİKİMLE OYNAMA", auth: "WufrIgp-eNmDZWBVpUNPlgjKsEqXkEmBAAFhY3iB8Vo", conn: "37382E3138382E3136312E323337", }, { name: "alper kaptanın anası", auth: "QrVQLHtCfL2cr_neZq4EKNp9HyGIx4Az2hMLW95QsTY", conn: "37382E3138322E3135352E313531", }, { name: "Maykıl", auth: "dpJFqdQYE7sMv6kkQjBz2FVFDvkAczbdEF3Xt1Rwkcg", conn: "3138352E3230322E3234302E313738", }, { name: "Enner", auth: "CiwCLlz4Hrw4ZsZ2_VZ0p_rcC17O0MBPlBSBvmpback", conn: "39342E35342E302E313738", }, { name: "Fani Dünya", auth: "Oi_OjZSZhw7CaqpF63T-xXxtBqts7_SYDVxA5eaks_g", conn: "34362E3139362E39302E3236", }, { name: ":crown:Thiago:trophy:", auth: "0cZlqStdPy-qGkISzwqJwSzxgMxenNs6h0mIqX83aqg", conn: "3137362E33332E3232362E3538", }, { name: "Dante", auth: "4UA_UX6EB6CPulS3Zac4Fx31cFgSD5psvBlyfrl_l0w", conn: "", }, { name: "Yüksek Sakatat", auth: "PqBRh9t5j6r_EJe-Sh8eGBrlQogD_rbydgFxp4ca-oo", conn: "", }, { name: "Papiss Cisse9", auth: "uBUPOVqO9dd44_0HeLFi6SuZHmGNphW_9jhH5jR4XOM", conn: "3137362E38382E32322E323334", }, { name: "Kolsuz Kaleci", auth: "e5XOEe7hobICRrk3jeQLyuQbpoeLbmEQ7o2ANGzwMzo", conn: "", }, { name: "Amdinlerisikiyim,", auth: "jwluEeZfjjv_HwQa1WKg1DLab2i34y3QykxmzVKN_VA,", conn: "", }, { name: "ahmad", auth: "CFYz8N6yJs4bQ4jz2znY2Ub-2n2OcPPDcdSa95iksr4", conn: "34362E322E3232352E313233", }, { name: "Arrak", auth: "OvrBAXrMJD-Ow3B5jNAAFWIOnHD4qak-rbJAcz7eWMk", conn: "3231322E3235322E3133392E313337", }, { name: "Luxcy #9", auth: "WtxK0qlZxzqIoyiy-zZ9NO5p34FM3LbK61Ol9yEeEx0", conn: "38382E3233382E37342E3337", }, { name: "Marcél,", auth: "G0iAQniszMt2Pik_z6BgG5GbI6ZSXis1Tlx4jA-3Gbo,", conn: "", }, { name: "Simão Sabrosa", auth: "MkfJ9ZSkXFtSQsXVZKNnM-hkLPeWVXltDIj4t-FxmJg", conn: "37382E3138332E3131342E3339", }, { name: "Hαkαn Çαlhαnσğlu", auth: "Cc4jbD6DSOpTJO4t-eBmqsaCcYDqFgIX7cSQT_y40kA", conn: "3138382E3131392E36302E3535", }, { name: "Menko", auth: "IMQML0L-b0X6gfhpkXHkSMkPhg0YnkhBJPPh8_KZGpo", conn: "3137362E38382E3130312E313930", }, { name: "AHMET KAYA", auth: "Ibmt1ERJBws4LArqoeTFdiF4tImvhq7RFJlaGzrDXl8", conn: "3231322E3235322E3137362E3131", }, { name: "MiraSu", auth: "SElSaotnU3V3liLGztxRyasgQyuj-4tKf7LOs5x0eLU", conn: "33312E3230362E3137302E313730", }, { name: "/▓ Gocuk Adam :100: :zzz: ", auth: "fN7YEuckf2EXa7MN0tcR9z6h4QzcJ-ghYSC_7pLQRSE", conn: "3231332E3135332E3136372E313339", }, { name: "trezequet", auth: "LsPta9jg6IwFsZzZTxGf3mx6f8l_SVnK2XlkJ8YBf2k", conn: "37382E3138302E33382E323030", }, { name: "Manuel Neuer/MGK", auth: "Hska61wn6-6U3ZST9TvVuSDnTabVCH9EMtbtn5NeY6g", conn: "37382E3139302E3135312E3933", }, { name: "#Haggle 10", auth: "CymtAu4_-07Tu5I51uBKiOPXKdEp6ryO-GG-sokLi0w", conn: "38352E39382E31372E3132", }, { name: "Luis Figo", auth: "LmRvwvTtP00LrWjs8qqhLDTEYQvuXyHvh49Omly8cQk", conn: "38382E3235352E3235342E313337", }, { name: "Vedat Muriqis", auth: "OX47zOTAt2vV8m19S-vEx-mrwSTYfo2OtCqBOppscUM", conn: "", }, { name: "Ahtapot", auth: "Pmb-oWUiDlWUry2pQu_-ZJ0CAnD1vd5V0SVK6Qkyq8g", conn: "32342E3133332E3132352E313338", }, { name: "LeroySane", auth: "lPiP_3pHHosXRLI5c2Y8dT_NLTakNGRxJL9UjSnug5Y", conn: "38352E3130382E3139322E313834", }, { name: "augusto pinochet", auth: "7q2h2Cm51TbOAEO_znDl8sqTeA0Hr9wGtZ7EU6VvFD0", conn: "39342E3132332E3231372E313437", }, { name: "Sahte 9", auth: "zAOgLk-fDf9I-Ih_Kp24dBW2HV8w3DdPq3TO3YujVAY", conn: "3137362E35342E33372E313236", }, { name: "chiellinin büzüğü", auth: "tLfYEiF2kOqzorYC-icc7K_KA18jKi4sxsu0AcSKWiE", conn: "3137362E35352E39372E31", }, { name: "ghezzal", auth: "epKrXFM03s1WJhGN-4ffhR9uF-P_Ojgy__sMIbj5UJc", conn: "39342E3233352E3136352E313237", }, { name: "ozi", auth: "Tc_U3ZDEZgT-GwIsSxiJYWbDwFd2FAnk9aHPgLSvAtM", conn: "37382E3138332E3131392E323239", }, { name: "Olivér", auth: "TfKokQ6eF2i3AWGVz-sSm5vjl4zc7wzOXLmTzo1XX7k", conn: "39352E37302E3132382E323333", }, { name: "ananikacirdim123", auth: "1WdxIdQ9ZkQHOe-Vi55aM9owIv2aJ7l8bJQp2oTnhyk", conn: "33312E3232332E34382E313433", }, { name: "BaW", auth: "vo0tWWJAFIGPp-9QMVlKF6uDmYE1w2w4VgYW4ffPkXI", conn: "38382E3234362E37342E313931", }, { name: "OxyGen'", auth: "TfKokQ6eF2i3AWGVz-sSm5vjl4zc7wzOXLmTzo1XX7k", conn: "39352E37302E3132382E323333", }, { name: "Ramiz Karaeski", auth: "rsujnJiyYRwIwit0YN-tUcAUrSMYypYXZbAh5gCoBT0", conn: "39352E352E38332E3337", }, { name: "Savior", auth: "LsFQwm_pCNkSr_apFg7eKxdjeeYIUAriP1I_hbf_8FA", conn: "3231332E3135332E3136312E313030", }, { name: "aboucakar", auth: "epKrXFM03s1WJhGN-4ffhR9uF-P_Ojgy__sMIbj5UJc", conn: "3231322E3135342E35392E3137", }, { name: "ercü", auth: "-34meZuufUzP9eajS1deWGFotdzoxonYVcxSwUEUly0", conn: "37382E3139302E37352E37", }, { name: "Savior", auth: "pzZ6gAkRqDGcbzO0F8mzJo_NG8VEtMoo1ddfZHKLmKY", conn: "3231332E3135332E3136312E313030", }, { name: "KÜFÜRCÜ BABA", auth: "MxblijpR6LSMaY8naaCTrUvVP3jceRTwIF3J82JB2tc", conn: "38382E3234332E3135322E3232", }, { name: "NbananaEmonkeyGbananaRmonkeyO", auth: "BWQwea-GCLgWOg_0TQygtBiC-EGBJHDXGUarpzDJFRc", conn: "39322E34352E3235302E3536", }, { name: "götten sert sikiş", auth: "RO6612bAXpVo0IUPpJSF7fYc5ryAFk5BTy7O9J_rXPA", conn: "38352E3130372E342E313939", }, { name: "Mia Malkova'nın Ayakları", auth: "kyws-sk53afmCqisCfYtFFkDmV5J7vRHpUKw2kTXrwM", conn: "3138382E3131392E31372E323330", }, { name: "TÜRBANLI ERKEK KAŞLI", auth: "kYO5or6kDHD_rbk5oojeGgtMJSkJY3tcZMIHLQWWAu0", conn: "38382E3234382E332E323437", }, { name: "Falcao #9#", auth: "gNd6gJPo3EEvyEf0GqiVnmltyx80jwMmjHXoVaXQMBc", conn: "39352E31302E3139302E313438", }, { name: "GOLIBOLI MBOMBO", auth: "HtB7rmpI-TDy9wa1Gp2D_GqL6aCKUMMq0GyWI3nNd-w", conn: "37382E3137312E39312E323135", }, { name: "faker", auth: "Cop0U02F5slk8MN-6vSWIu1_ZmXYh_okD9Grvb_AHlM", conn: "3137382E3233332E32312E3830", }, { name: "hazin geliyor", auth: "IKodIefNjrDiQ4rEODjCMMlL80R6vPRo55SuZelWuaw", conn: "38382E3234332E34352E3439", }, { name: "it do can I do", auth: "SIPQa524Jb1NbdmmJgH_vu35f3Ka8sNNSjt9huZncs8", conn: "37382E3136382E3133302E323236", }, { name: "egecancancanmal", auth: "swMKJiIwGmGp6W8sm4XnuEMB3RyJBFmIw1OLvofu300", conn: "38322E3232322E3133332E313632", }, { name: "Şanssız Forvet", auth: "_Hfl03ZZgnIRgrIw6YDHzNwyX2HKQhBHaXn0KCoD2Es", conn: "38312E3231352E3233332E313331", }, { name: "reshoot", auth: "8TRcp8KjxBB11SmjKqMH1aDqQ74NRA80cRYevqP61-M", conn: "38352E39372E3234392E313637", }, { name: "Stark", auth: "9_BwvnwwnBEqiud1WvmWSxuTvaKax-VimEK2ghZ5RAk", conn: "32342E3133332E3231302E313533", }, { name: "connectionclosed", auth: "fi3jkaSk-T1KBUuFyV2zV7xmPUyyHV3jmlpnkBqnxWU", conn: "39352E37302E3133322E323031", }, { name: "K.DIMITROV", auth: "vanvj9xT7vO4kmNQlz2Qxzc9gKasxQkV-s4OREMs0uc", conn: "39332E3134332E3132392E323530", }, { name: "Euler Phi Function", auth: "KGlk2cPrKkps7HcS_aPNGyYa7CjuTyRf17ypN1vp1CY", conn: "38382E3233302E3134332E3531", }, { name: "Castro", auth: "v_CkX_o8IoB2gG3lOmyG0CkhzoXdjTKyYI0HNsrMCIU", conn: "3138382E332E33332E323130", }, { name: "Pascal Nouma", auth: "XBaw25uwHaGgE9YzZawtHZtuw0cASjneAT98R9iPcDI", conn: "38322E3232322E39372E3630", }, { name: "WooWon", auth: " eljEnG3enwZJe-_tEF2i5tuadanTTB73DEcGKaywHYQ", conn: "38382E3234312E38322E313830", }, { name: "Bıyıklı Forvet", auth: "fgSb-6bye7kxNxoJBWueOrdMmbHAbncWTtaG5AAsCTM", conn: "3137362E38382E32322E313733", }, { name: "Rodrigo Bentancur", auth: "Cc4jbD6DSOpTJO4t-eBmqsaCcYDqFgIX7cSQT_y40kA", conn: "3138382E3131392E33392E313337", }, { name: "Robin Van Persie #20", auth: "ansbDWEmPL8LZYUh6RDNpQ5O4FZsushX42JV1Br358c", conn: "37382E3138352E32332E323438", }, { name: "FARFAN GÖTÜN KOCAMAN", auth: "abXua3EbXBfPerAWEokv_s5Z72wnFnGFK2WrGU0mC6g", conn: "3137362E34312E3232382E323333", }, { name: "TÜRBANLI ERKEK KAŞLI", auth: "kYO5or6kDHD_rbk5oojeGgtMJSkJY3tcZMIHLQWWAu0", conn: "38382E3234382E332E323437", }, { name: "Paxe',", auth: "sQuGHis7qUkIyYiXmf-qYrHLwVeTHZDPJvEIUIt69vg", conn: "37382E3139302E3134312E3735", }, { name: "Mohamed Salah", auth: "w6ZDkKWQwO6W4Pr3QgNdy6kBYsuUMXmjFJxJf_VkC_M", conn: "39352E31322E3132352E3638", }, { name: "Çağs", auth: "CkOkCtQ5rttewYip0mQtffTFRTyQbYserxHxNcdOImM,", conn: "37382E3133352E36312E31353", }, { name: "ESKİ TELEFON :(", auth: "GiB1-gv6SIeYl6WuNNQbPJzgp2vNuuYpZlpUi-pH4Zw", conn: "39342E3132322E33332E3939", }, { name: "simitçi", auth: "ZNqqV1LHw3tXoyGNnWg9TPvhx8H451XDT71jpvD4hOQ", conn: "3139352E3135352E3136382E323333", }, { name: "Neymar 10", auth: "qxpu05hgA6-OhRTBY-pXOLfjRgLNjFRJXpKfZY8fNVE", conn: "3137362E38382E3133312E313330", }, { name: "Wilfried Zaha", auth: "w6ZDkKWQwO6W4Pr3QgNdy6kBYsuUMXmjFJxJf_VkC_M", conn: "39352E31322E3131332E313933", }, { name: "Pawn", auth: "tNprv134JMtPRBeKKUk821nvYwTNfWsuNjkn0b-gKR4", conn: "3139352E3134322E37312E3932", }, { name: "Falcao #9#", auth: "gNd6gJPo3EEvyEf0GqiVnmltyx80jwMmjHXoVaXQMBc", conn: "39352E31302E3138362E313331", }, { name: "Dilipak", auth: "WfD30psG2z7GNJjDX8KQwyAdEfNeffEU3R5bFrX6mNQ", conn: "3137362E33332E3132382E323336", }, { name: "Euler Phi Function", auth: "wnwSOa5dj9B-qGcGDf1HHdCl-JpwNhqh12FgkpdzAIY", conn: "38382E3233302E3134332E3531", }, { name: "Stradinin Fakesiiii", auth: "fu5kkFvEOyxpnQbmouMe18n4kx4RsbXJ8Tkw1RE3ClA", conn: "3137362E33302E3232342E323534", }, { name: "Hakan Çalhanoğlu", auth: "Cc4jbD6DSOpTJO4t-eBmqsaCcYDqFgIX7cSQT_y40kA", conn: "37382E3138302E3234322E313537", }, { name: "COVİD", auth: "7cPghWJN0SIud0zId4otuTJHb_rYZrjznXg-tTAhUNA", conn: "38352E3130362E3131302E3631 ", }, { name: "ALLAHINIZI SİKERİM", auth: "UoYkfYqI07M98MZ-snB8Y268dSE9ylJx06RhqVogzjU", conn: "38382E3233302E31332E3839", }, { name: "Ariellerden Ortega Bey", auth: "prfnmRgZAubH8zF1VtrXebFBqsvg_gviMGYl3jNrMOA", conn: "39352E382E3235302E313730", }, { name: "ODA KAPATICI V2 SCRİPT", auth: "EXgkXInIPnw8BtgkT1ZC2X2c0KLsNwwVcGzKFd3TGlc", conn: "3137382E3234372E3132372E313834", }, { name: "Covid-21", auth: "1D4H-EoO2vKqism4GitCNCNs5g3VQns-BROhGetGZkQ", conn: "3137362E3233332E35382E323337", }, { name: "Diaz", auth: "SH1IM5jepQIpEhLmkR207eZFbgw9YcEmcVaLP79erOM", conn: "38382E3234362E3139362E323435", }, { name: "Özgün", auth: "IWYj2G7IxijiSfe2ywDPuUk5C5e8pJILBr-BwLlOXsQ", conn: "33312E3232332E31342E313335", }, { name: "Ndiaye", auth: "K9TDlNo5NrsSxzFpO5X8NSxRsZD03gB8aXakP7flOoQ", conn: "39342E35342E35342E39", }, { name: "Murat Turan", auth: "HAMUrNx6ee_xesxTk_7P7o5et0XyShNVIOhzWbU56VY", conn: "38382E3234332E3133332E3232", }, { name: "Srp12", auth: "c_qDcPK3RRhvsoOzni9YXQv3w4fcbD6CSFKDa97kAas", conn: "38352E3130312E33302E313837", }, { name: "ALLAH", auth: "-pRnhKfPleF4utPFzWj5i_T-f3jsiiNAyKts3h5AqqM", conn: "3135382E3139332E35352E3839", }, { name: "İNANDIĞINIZ allahı SİKİYM", auth: "x_h1yAnNxdUh1z0F4-KO1GOiC7TeEDEYulCduYgXZm4", conn: "34362E312E3233322E3835", }, { name: "kammmmil", auth: "BFP5v4Ldkkb9yI371VY5QUwTaq-UX4IovE0ZrdkUWx8", conn: "36322E3230322E3138312E323431", }, { name: "MARİO GOMEZ", auth: "NgKIjjw-r8hnCQzUtjvfxLvdikwUcCeOguDaZntHFGs", conn: "38382E3234342E3139362E323134", }, { name: "Scary", auth: "RQxfwQyplB3OU1z23p_--oPxvWT2XqKB5qB9xbFMqDs", conn: "37382E3138352E3232372E3334", }, { name: "Dinlere Sokan Cocuk", auth: "_l9uA4hJ_FZ5X_K-8Q0hnHggYr-wKrrFJXFqjwT-jgQ", conn: "37382E3138322E3134362E3234", }, { name: "Feghoculi", auth: "bQQnQIs0PkqwAWSf9xIFKMtgdcHem8XKaZSwa9lxNLc", conn: "3138352E3234392E38392E323136", }, { name: "Kyrastiv", auth: "uh0BfYZeSDtpWork9dK91T8pGfwhGdgEWuSCFBBZF10", conn: "37382E3138342E3235332E323239", }, { name: "foverv blue", auth: "e4-uySTT2mwgFJsq1bEjrYqeFaN0wYIz2KvYAhi8L7g", conn: "3137362E3234302E3232362E313235", }, { name: "mert hakan yandaş", auth: "8XidHFVyKF0ATTHuhd2wS4VVmj8H8TG16Qv7TdtZ0CU", conn: "3137362E39302E3138342E3932", }, { name: "Obsesiff", auth: "GSGH7N5gxKCCiDJc2y3uuVRYTvHtvmt0UMdjsYA5QjU", conn: "38352E3131302E3133372E313839", }, { name: "Monswér", auth: "FYp7OxoVpNNzCPvpqS4XAKXivVP-GQe1a9y9tsL1HWY", conn: "38352E3130372E39302E3435", }, { name: "#Snow`Man", auth: "i73SzhJ2VbDQAWLS_lxdp7_VicIUXCLWrRSfnWeqcSE", conn: "352E3137372E3135392E34", }, { name: "AdmininValidesi", auth: "o7sa6W2fj9mk1nbaqE0QN6My2rfqf2D5Php7XWadcn8", conn: "38382E3234322E36362E313935", }, { name: "Ɑ͞ ̶͞ ̶͞ ̶͞ ̶͞ ̶͞ ̶͞ ﻝﮞ", auth: "y1SfBfwNXApLlJt9Ie-muR3_3Pc5itHPVi3etGPv9ls", conn: "39342E35342E36302E3235", }, { name: "Palo", auth: "oB3vbk_dq-zuCUrna3g_Zs3SQlHwJIY4uE9BPFBI-KE", conn: "38382E3234342E38382E3938", }, { name: "Baron Corbin", auth: "6E2TO2hjSLHiBuRIE4_vGg0bCbTVPLYC_QjXtJvsVaE", conn: "3137362E3233322E3132322E313834", }, { name: "Doka", auth: "XUJGb10XBJKe7AoEJVoCck3bdYoMkQKFtCCb-BCaNR8", conn: "38352E3130322E3130382E3836", }, { name: "mavi saçlı kylian mbappe", auth: "3Zgo74XKHcgJZspzDT7ZdTmOwuWanaGdjQACUEpVHSs", conn: "3139352E3135352E3136392E31", }, { name: "troll", auth: "WMJdWL-GF9YdaLzX9KNbE03x2yQvGYI3JSXLDLi1jwE", conn: "3139352E3134322E3134372E323433", }, { name: "bal10n", auth: "lfacZ6bCXKuqucqwib0jtlVfnR4Swoi_W9BTo55UJ90", conn: "3139352E3134322E3134372E323433", }, { name: "trol", auth: "WMJdWL-GF9YdaLzX9KNbE03x2yQvGYI3JSXLDLi1jwE", conn: "3139352E3134322E3134372E323433", }, { name: "Kamal Ataput", auth: "n-uAY0mKhWhEHOug9UvX4sFkzSx9GMoV4I1AcdiNiac", conn: "3231322E3235332E31372E323238", }, { name: "RamosAnanıSikeyim", auth: "t_PayBCFEFbtTlWhczL8EMxLdMTew8QFu3hiZ61SGzQ", conn: "3231322E3235332E31372E323238", }, { name: "mavi saçlı kylian mbappe", auth: "3Zgo74XKHcgJZspzDT7ZdTmOwuWanaGdjQACUEpVHSs", conn: "3139352E3135352E3137302E313936", }, { name: "WooW", auth: "eljEnG3enwZJe-_tEF2i5tuadanTTB73DEcGKaywHYQ", conn: "38382E3234312E38312E3435", }, { name: "DAVAR", auth: "Omy4ml1L3WSPEdgoHUjPgq0daXFZ97qytJMXNMG0lPI", conn: "37382E3137332E352E3735", }, { name: "cueva", auth: "ErL85yYpYguzZMplxiU_ny2YSSziS6C4sSsbVNCrfWA", conn: "38382E3233342E362E3632", }, { name: "Defansif 10 Numara", auth: "8Q38pACt0rJlmJNQVcvOhpiXZKGrHLsTyBLCf69d3ew", conn: "37382E3137342E37382E3338", }, { name: "apo", auth: "1123TD2VAK9J7ELAsT-hXF3Abw6WdpRJSit-c8p0B7c", conn: "34362E322E352E36", }, { name: "Valverde", auth: "w91i8y69U9XNoUpDNPHVmmPllXeWsUXRImrJB4ZFoCA", conn: "39342E35342E35342E39", }, { name: "Skilla", auth: "1eXXh76MkvcctqEW4fvYOh7Fm8YMC5i7sQA3Q6nI8gM", conn: "3138382E32332E36382E313632", }, { name: "YİĞİT ÜLGÜN", auth: "Az45-7mzYPAd3s65uzr5louv9G5iq41W1G1bh_S9P-c", conn: "38382E3235342E312E3535", }, ]; this.yasakliIsımler = [ "PANDİKLEYEN", "amına", "alnnenı sıktım", "ablanı", "orospu", "piç", "anan", "ananı", "sikerim", "amcık", "orusbu", "orosbu", "oç", "amcık", "amına", "anan", "Ananı", "ananı", "Sikerim", "a.m.k", "Sik", "sik", "Piç", "piç", "Oç", "oç", "öç", "Öç", "Oc", "oc", "O.ç", "o.Ç", "o.ç", "o..ç", "Orospu", "orospu", "O.rospu", "o.rospu", "Çocuğu", "çocuğu", "Cocuğu", "cocuğu", "Siktiğim", "siktiğim", "S.iktiğim", "s.iktiğim", "Allahını", "allahını", "Kitapını", "kitapını", "Kitabını", "K.itabını", "K.i.tabını", "O.Ç", "O.C", "OC", "O.C", "SIKERIM", "SIK", "ALLAHINI", "ANASINI", "ANANINKI", "Ananinki", "Ananınki", "ananınki", "ananınki", "ananınkı", "Vajina", "Oğlu", "oğlu", "oglu", "OGLU", "OĞLU", "Kuranını", "kuranını", "Anan", "SİKTİR A.Q", "kodugumun kürtü", "koduğumun kürtü", "KODUGUMUN KÜRDÜ", "siktir", "SIKTIR", "Siktir", "Yavşak", "YAVŞAK", "Pezeveng", "Pezvenk", "pezevenk", "KODUĞUMUN KÜRDÜ", "aşnnenın almına soktum", "almına sokayım", "kodugumun lowu", "koduğumun lowu", "SİKTİKLERİM", "ZEKASINI SİKTİKLERİM", "siktiklerim", "kürt", "KÜRT", "kürd", "KÜRD", "KÜRDO", "kürdo", "kürdo", "KURDO", "ibne", "ibine", "ipine", "ibne", "ipne", "ibnesin", "İBİNE", "İBİNE", "İBNE", "İPNE", "İPNESİN", "SELO BAŞKAN", "selo başkan", "Selahattin Demirtaş", "SELAHATTİN DEMİRTAŞ", "selahattin demirtaş", "Öcalan", "ÖCALAN", "öcalan", "yavşak", "ESCORT", "escort", "Escort", "doggy pozisyonu", "anneni doggy", "ananı doggy", "ablanı doggy", "sex", "a.m.k", "A.Q", "eskort", "ESKORT", "SİKKO", "sikko", "brazzers", "hardcore", "suvari", "acemi oyunu bozanlar", "4LL4H", "allahnı", "ALLAHNI", "Lazvegas54", "Lazvegas", "sikiş makinesi", "sikiş makinası", "sikiş", "SİKİŞ MAKİNESİ", "SİKİŞ MAKİNASI", "SİKİŞ", "sex makinesi", "sex makinası", "SEX MAKİNESİ", "ÖztürkSerengil", "öztürkserengil", "ÖZTÜRKSERENGİL", "Fethullah Gülen", "göt deliği", "Buda*", "serengil", "Onur RushB Kıvrak", "RushB", "ÖZTÜRK SERENGİL WAS HERE", ]; this.istatistik = {}; this.isFillBall = false; this.playerAngle = 0; this.hukmenGolTeam = 0; this.mevkilerSecildi = false; this.tacHayaletTakim = 0; this.susturmak = false; this.mesajGitmez = false; this.mesajGitmezTimeout = null; this.tacDegisPos = { x: 0, y: 0 }; this.tacDegis = false; this.tacDegisTakim = 0; this.kayipZaman = 0; this.disariCikanTime = 0; this.kayipZamanBildirim = false; this.uyeler = {}; this.ckRedSay = 0; this.ckBlueSay = 0; this.susTimeout = null; this.susturmakGiris = false; this.susturmakIstatistik = false; this.mevkiTespitCount = 1; this.maxMevkiCeza = 3000; this.mevkiDongu = 0; this.temaslar = []; this._lastBallSpeed = { x: 0, y: 0 }; this._lastBallPos = { x: 0, y: 0 }; this._disariDurum = -1; this._disariTeam = -1; this.alfaTest = false; this.rsV6state = RsV6MapState.POWER; this.tehlikeliAtakState = -1; this.tehlikeliAtakTeam = -1; this.spikerKonusmak = true; this.spikerParcalari = [ true, true, true, true, true, true, true, true, true, true, true, true, true, ]; this.spikerAcKomutlar = [ "!temasac", "!pasac", "!sutac", "!kontrolac", "!ortaac", "!kaleac", "!mudahaleac", "!carpmaac", "!surmeac", "!kuralsizac", "!disardanac", "!tacac", "!kurtarmaac", ]; this.spikerKapaKomutlar = [ "!temaskapa", "!paskapa", "!sutkapa", "!kontrolkapa", "!ortakapa", "!kalekapa", "!mudahalekapa", "!carpmakapa", "!surmekapa", "!kuralsizkapa", "!disardankapa", "!tackapa", "!kurtarmakapa", ]; this.hareketKelimeAnimEnabled = false; this.sahaYaziPos = { x: 0, y: 150 }; this.harfDiscRadius = 3.0003; this.harfDiscRadiusWaste = 0.0003; this.harfDiscRadiusDigitVal = 3; this.harfDiscRadiusDigitIndex = 3; this.harfDiscDisariPos = 9999.0003; this.harfAralik = 15; this.sahaKelimeDiscs = null; this.animSahaYaziStartPos = { x: 0, y: 350 }; this.sahaYaziScale = 1.3; this.teamBlinkIndex = 0; this.harfler = { A: [ { x: 30, y: 0 }, { x: 25, y: 10 }, { x: 35, y: 10 }, { x: 20, y: 20 }, { x: 40, y: 20 }, { x: 15, y: 30 }, { x: 25, y: 30 }, { x: 35, y: 30 }, { x: 45, y: 30 }, { x: 10, y: 40 }, { x: 50, y: 40 }, { x: 5, y: 50 }, { x: 55, y: 50 }, { x: 0, y: 60 }, { x: 60, y: 60 }, ], B: [ { x: 0, y: 0 }, { x: 10, y: 0 }, { x: 20, y: 0 }, { x: 0, y: 10 }, { x: 25, y: 10 }, { x: 0, y: 20 }, { x: 25, y: 20 }, { x: 0, y: 30 }, { x: 10, y: 30 }, { x: 20, y: 30 }, { x: 0, y: 40 }, { x: 25, y: 40 }, { x: 0, y: 50 }, { x: 25, y: 50 }, { x: 0, y: 60 }, { x: 10, y: 60 }, { x: 20, y: 60 }, ], C: [ { x: 25, y: 0 }, { x: 35, y: 0 }, { x: 45, y: 0 }, { x: 55, y: 0 }, { x: 15, y: 10 }, { x: 10, y: 20 }, { x: 10, y: 30 }, { x: 10, y: 40 }, { x: 15, y: 50 }, { x: 25, y: 60 }, { x: 35, y: 60 }, { x: 45, y: 60 }, { x: 55, y: 60 }, ], D: [ { x: 0, y: 0 }, { x: 10, y: 0 }, { x: 20, y: 0 }, { x: 0, y: 10 }, { x: 30, y: 10 }, { x: 0, y: 20 }, { x: 35, y: 20 }, { x: 0, y: 30 }, { x: 35, y: 30 }, { x: 0, y: 40 }, { x: 35, y: 40 }, { x: 0, y: 50 }, { x: 30, y: 50 }, { x: 0, y: 60 }, { x: 10, y: 60 }, { x: 20, y: 60 }, ], E: [ { x: 0, y: 0 }, { x: 10, y: 0 }, { x: 20, y: 0 }, { x: 30, y: 0 }, { x: 0, y: 10 }, { x: 0, y: 20 }, { x: 0, y: 30 }, { x: 10, y: 30 }, { x: 20, y: 30 }, { x: 30, y: 30 }, { x: 0, y: 40 }, { x: 0, y: 50 }, { x: 0, y: 60 }, { x: 10, y: 60 }, { x: 20, y: 60 }, { x: 30, y: 60 }, ], F: [ { x: 0, y: 0 }, { x: 10, y: 0 }, { x: 20, y: 0 }, { x: 30, y: 0 }, { x: 0, y: 10 }, { x: 0, y: 20 }, { x: 0, y: 30 }, { x: 10, y: 30 }, { x: 20, y: 30 }, { x: 30, y: 30 }, { x: 0, y: 40 }, { x: 0, y: 50 }, { x: 0, y: 60 }, ], G: [ { x: 15, y: 0 }, { x: 25, y: 0 }, { x: 35, y: 0 }, { x: 10, y: 10 }, { x: 5, y: 20 }, { x: 5, y: 30 }, { x: 40, y: 30 }, { x: 50, y: 30 }, { x: 5, y: 40 }, { x: 55, y: 40 }, { x: 10, y: 50 }, { x: 55, y: 50 }, { x: 15, y: 60 }, { x: 25, y: 60 }, { x: 35, y: 60 }, { x: 45, y: 60 }, ], H: [ { x: 0, y: 0 }, { x: 40, y: 0 }, { x: 0, y: 10 }, { x: 40, y: 10 }, { x: 0, y: 20 }, { x: 40, y: 20 }, { x: 0, y: 30 }, { x: 10, y: 30 }, { x: 20, y: 30 }, { x: 30, y: 30 }, { x: 40, y: 30 }, { x: 0, y: 40 }, { x: 40, y: 40 }, { x: 0, y: 50 }, { x: 40, y: 50 }, { x: 0, y: 60 }, { x: 40, y: 60 }, ], I: [ { x: 0, y: 0 }, { x: 0, y: 10 }, { x: 0, y: 20 }, { x: 0, y: 30 }, { x: 0, y: 40 }, { x: 0, y: 50 }, { x: 0, y: 60 }, ], J: [ { x: 20, y: 0 }, { x: 20, y: 10 }, { x: 20, y: 20 }, { x: 20, y: 30 }, { x: 20, y: 40 }, { x: 0, y: 50 }, { x: 20, y: 50 }, { x: 5, y: 60 }, { x: 15, y: 60 }, ], K: [ { x: 0, y: 0 }, { x: 25, y: 0 }, { x: 0, y: 10 }, { x: 20, y: 10 }, { x: 0, y: 20 }, { x: 15, y: 20 }, { x: 0, y: 30 }, { x: 10, y: 30 }, { x: 0, y: 40 }, { x: 15, y: 40 }, { x: 0, y: 50 }, { x: 20, y: 50 }, { x: 0, y: 60 }, { x: 25, y: 60 }, ], L: [ { x: 0, y: 0 }, { x: 0, y: 10 }, { x: 0, y: 20 }, { x: 0, y: 30 }, { x: 0, y: 40 }, { x: 0, y: 50 }, { x: 0, y: 60 }, { x: 10, y: 60 }, { x: 20, y: 60 }, { x: 30, y: 60 }, ], M: [ { x: 30, y: 0 }, { x: 85, y: 0 }, { x: 25, y: 10 }, { x: 35, y: 10 }, { x: 80, y: 10 }, { x: 90, y: 10 }, { x: 20, y: 20 }, { x: 40, y: 20 }, { x: 75, y: 20 }, { x: 95, y: 20 }, { x: 15, y: 30 }, { x: 45, y: 30 }, { x: 70, y: 30 }, { x: 100, y: 30 }, { x: 10, y: 40 }, { x: 50, y: 40 }, { x: 65, y: 40 }, { x: 105, y: 40 }, { x: 5, y: 50 }, { x: 55, y: 50 }, { x: 110, y: 50 }, { x: 0, y: 60 }, { x: 115, y: 60 }, ], N: [ { x: 0, y: 0 }, { x: 45, y: 0 }, { x: 0, y: 10 }, { x: 10, y: 10 }, { x: 45, y: 10 }, { x: 0, y: 20 }, { x: 15, y: 20 }, { x: 45, y: 20 }, { x: 0, y: 30 }, { x: 20, y: 30 }, { x: 45, y: 30 }, { x: 0, y: 40 }, { x: 25, y: 40 }, { x: 45, y: 40 }, { x: 0, y: 50 }, { x: 30, y: 50 }, { x: 45, y: 50 }, { x: 0, y: 60 }, { x: 35, y: 60 }, { x: 45, y: 60 }, ], O: [ { x: 10, y: 0 }, { x: 20, y: 0 }, { x: 30, y: 0 }, { x: 5, y: 10 }, { x: 35, y: 10 }, { x: 0, y: 20 }, { x: 40, y: 20 }, { x: 0, y: 30 }, { x: 40, y: 30 }, { x: 0, y: 40 }, { x: 40, y: 40 }, { x: 5, y: 50 }, { x: 35, y: 50 }, { x: 10, y: 60 }, { x: 20, y: 60 }, { x: 30, y: 60 }, ], P: [ { x: 0, y: 0 }, { x: 10, y: 0 }, { x: 20, y: 0 }, { x: 0, y: 10 }, { x: 30, y: 10 }, { x: 0, y: 20 }, { x: 30, y: 20 }, { x: 0, y: 30 }, { x: 10, y: 30 }, { x: 20, y: 30 }, { x: 0, y: 40 }, { x: 0, y: 50 }, { x: 0, y: 60 }, ], R: [ { x: 0, y: 0 }, { x: 10, y: 0 }, { x: 20, y: 0 }, { x: 0, y: 10 }, { x: 25, y: 10 }, { x: 0, y: 20 }, { x: 25, y: 20 }, { x: 0, y: 30 }, { x: 10, y: 30 }, { x: 20, y: 30 }, { x: 0, y: 40 }, { x: 25, y: 40 }, { x: 0, y: 50 }, { x: 30, y: 50 }, { x: 0, y: 60 }, { x: 35, y: 60 }, ], S: [ { x: 15, y: 0 }, { x: 25, y: 0 }, { x: 35, y: 0 }, { x: 10, y: 10 }, { x: 15, y: 20 }, { x: 20, y: 30 }, { x: 25, y: 40 }, { x: 25, y: 50 }, { x: 0, y: 60 }, { x: 10, y: 60 }, { x: 20, y: 60 }, ], T: [ { x: 0, y: 0 }, { x: 10, y: 0 }, { x: 20, y: 0 }, { x: 30, y: 0 }, { x: 40, y: 0 }, { x: 50, y: 0 }, { x: 20, y: 10 }, { x: 20, y: 20 }, { x: 20, y: 30 }, { x: 20, y: 40 }, { x: 20, y: 50 }, { x: 20, y: 60 }, ], U: [ { x: 0, y: 0 }, { x: 30, y: 0 }, { x: 0, y: 10 }, { x: 30, y: 10 }, { x: 0, y: 20 }, { x: 30, y: 20 }, { x: 0, y: 30 }, { x: 30, y: 30 }, { x: 0, y: 40 }, { x: 30, y: 40 }, { x: 0, y: 50 }, { x: 30, y: 50 }, { x: 5, y: 60 }, { x: 15, y: 60 }, { x: 25, y: 60 }, ], V: [ { x: 0, y: 0 }, { x: 60, y: 0 }, { x: 5, y: 10 }, { x: 55, y: 10 }, { x: 10, y: 20 }, { x: 50, y: 20 }, { x: 15, y: 30 }, { x: 45, y: 30 }, { x: 20, y: 40 }, { x: 40, y: 40 }, { x: 25, y: 50 }, { x: 35, y: 50 }, { x: 30, y: 60 }, ], Y: [ { x: 0, y: 0 }, { x: 30, y: 0 }, { x: 5, y: 10 }, { x: 25, y: 10 }, { x: 10, y: 20 }, { x: 20, y: 20 }, { x: 15, y: 30 }, { x: 15, y: 40 }, { x: 15, y: 50 }, { x: 15, y: 60 }, ], Z: [ { x: 0, y: 0 }, { x: 10, y: 0 }, { x: 20, y: 0 }, { x: 30, y: 0 }, { x: 40, y: 0 }, { x: 50, y: 0 }, { x: 45, y: 10 }, { x: 35, y: 20 }, { x: 25, y: 30 }, { x: 15, y: 40 }, { x: 5, y: 50 }, { x: 0, y: 60 }, { x: 10, y: 60 }, { x: 20, y: 60 }, { x: 30, y: 60 }, { x: 40, y: 60 }, { x: 50, y: 60 }, ], Q: [ { x: 10, y: 0 }, { x: 20, y: 0 }, { x: 30, y: 0 }, { x: 5, y: 10 }, { x: 40, y: 10 }, { x: 0, y: 20 }, { x: 45, y: 20 }, { x: 0, y: 30 }, { x: 45, y: 30 }, { x: 0, y: 40 }, { x: 20, y: 40 }, { x: 45, y: 40 }, { x: 5, y: 50 }, { x: 25, y: 50 }, { x: 40, y: 50 }, { x: 10, y: 60 }, { x: 20, y: 60 }, { x: 30, y: 60 }, ], W: [ { x: 0, y: 0 }, { x: 110, y: 0 }, { x: 5, y: 10 }, { x: 55, y: 10 }, { x: 105, y: 10 }, { x: 10, y: 20 }, { x: 50, y: 20 }, { x: 60, y: 20 }, { x: 100, y: 20 }, { x: 15, y: 30 }, { x: 45, y: 30 }, { x: 65, y: 30 }, { x: 95, y: 30 }, { x: 20, y: 40 }, { x: 40, y: 40 }, { x: 70, y: 40 }, { x: 90, y: 40 }, { x: 25, y: 50 }, { x: 35, y: 50 }, { x: 75, y: 50 }, { x: 85, y: 50 }, { x: 30, y: 60 }, { x: 80, y: 60 }, ], X: [ { x: 0, y: 0 }, { x: 30, y: 0 }, { x: 5, y: 10 }, { x: 25, y: 10 }, { x: 10, y: 20 }, { x: 20, y: 20 }, { x: 15, y: 30 }, { x: 10, y: 40 }, { x: 20, y: 40 }, { x: 5, y: 50 }, { x: 25, y: 50 }, { x: 0, y: 60 }, { x: 30, y: 60 }, ], 0: [ { x: 10, y: 0 }, { x: 20, y: 0 }, { x: 5, y: 10 }, { x: 25, y: 10 }, { x: 0, y: 20 }, { x: 30, y: 20 }, { x: 0, y: 30 }, { x: 30, y: 30 }, { x: 0, y: 40 }, { x: 30, y: 40 }, { x: 5, y: 50 }, { x: 25, y: 50 }, { x: 10, y: 60 }, { x: 20, y: 60 }, ], 1: [ { x: 0, y: 0 }, { x: 10, y: 0 }, { x: 10, y: 10 }, { x: 10, y: 20 }, { x: 10, y: 30 }, { x: 10, y: 40 }, { x: 10, y: 50 }, { x: 10, y: 60 }, ], 2: [ { x: 0, y: 0 }, { x: 10, y: 0 }, { x: 15, y: 10 }, { x: 15, y: 20 }, { x: 15, y: 30 }, { x: 10, y: 40 }, { x: 5, y: 50 }, { x: 0, y: 60 }, { x: 10, y: 60 }, { x: 20, y: 60 }, ], 3: [ { x: 0, y: 0 }, { x: 10, y: 0 }, { x: 15, y: 10 }, { x: 15, y: 20 }, { x: 5, y: 30 }, { x: 15, y: 30 }, { x: 15, y: 40 }, { x: 15, y: 50 }, { x: 0, y: 60 }, { x: 10, y: 60 }, ], 4: [ { x: 25, y: 0 }, { x: 20, y: 10 }, { x: 15, y: 20 }, { x: 10, y: 30 }, { x: 5, y: 40 }, { x: 0, y: 50 }, { x: 10, y: 50 }, { x: 20, y: 50 }, { x: 30, y: 50 }, { x: 40, y: 50 }, { x: 25, y: 60 }, ], 5: [ { x: 0, y: 0 }, { x: 10, y: 0 }, { x: 20, y: 0 }, { x: 30, y: 0 }, { x: 40, y: 0 }, { x: 5, y: 10 }, { x: 15, y: 10 }, { x: 20, y: 20 }, { x: 25, y: 30 }, { x: 25, y: 40 }, { x: 20, y: 50 }, { x: 0, y: 60 }, { x: 10, y: 60 }, ], 6: [ { x: 15, y: 0 }, { x: 25, y: 0 }, { x: 10, y: 10 }, { x: 5, y: 20 }, { x: 0, y: 30 }, { x: 0, y: 40 }, { x: 10, y: 40 }, { x: 20, y: 40 }, { x: 5, y: 50 }, { x: 25, y: 50 }, { x: 10, y: 60 }, { x: 20, y: 60 }, ], 7: [ { x: 0, y: 0 }, { x: 10, y: 0 }, { x: 20, y: 0 }, { x: 30, y: 0 }, { x: 40, y: 0 }, { x: 50, y: 0 }, { x: 40, y: 10 }, { x: 30, y: 20 }, { x: 20, y: 30 }, { x: 15, y: 40 }, { x: 10, y: 50 }, { x: 5, y: 60 }, ], 8: [ { x: 5, y: 0 }, { x: 15, y: 0 }, { x: 25, y: 0 }, { x: 0, y: 10 }, { x: 30, y: 10 }, { x: 0, y: 20 }, { x: 30, y: 20 }, { x: 5, y: 30 }, { x: 15, y: 30 }, { x: 25, y: 30 }, { x: 0, y: 40 }, { x: 30, y: 40 }, { x: 0, y: 50 }, { x: 30, y: 50 }, { x: 5, y: 60 }, { x: 15, y: 60 }, { x: 25, y: 60 }, ], 9: [ { x: 5, y: 0 }, { x: 15, y: 0 }, { x: 25, y: 0 }, { x: 0, y: 10 }, { x: 30, y: 10 }, { x: 0, y: 20 }, { x: 30, y: 20 }, { x: 5, y: 30 }, { x: 15, y: 30 }, { x: 25, y: 30 }, { x: 30, y: 40 }, { x: 30, y: 50 }, { x: 5, y: 60 }, { x: 15, y: 60 }, { x: 25, y: 60 }, ], "#": [ { x: 5, y: 0 }, { x: 35, y: 0 }, { x: 5, y: 10 }, { x: 35, y: 10 }, { x: 0, y: 20 }, { x: 10, y: 20 }, { x: 20, y: 20 }, { x: 30, y: 20 }, { x: 40, y: 20 }, { x: 5, y: 30 }, { x: 35, y: 30 }, { x: 0, y: 40 }, { x: 10, y: 40 }, { x: 20, y: 40 }, { x: 30, y: 40 }, { x: 40, y: 40 }, { x: 5, y: 50 }, { x: 30, y: 50 }, { x: 5, y: 60 }, { x: 30, y: 60 }, ], }; this.krallar = { rankKrali: { name: "", emoji: "?" }, golKrali: { name: "", emoji: "⚽️" }, asistKrali: { name: "", emoji: "✅" }, kurtarisKrali: { name: "", emoji: "?" }, csKrali: { name: "", emoji: "?" }, dmKrali: { name: "", emoji: "?️" }, }; this.mapOylar = {}; this.enabledMapOyla = false; this.mapOylaTimeout = null; this.redBolgeOynandi = 0; this.blueBolgeOynandi = 0; this.sureliYasaklilar = {}; this.susturmakOylama = false; this.oylamaAcik = false; this.tempStas = {}; this.isRsV6Acilsin = true; this.isRsv6mi = true; this.kufurSuphe = true; this.tacUzaklasti = false; this.timeLimit = 7 * 60; this.currentTeamColor = null; //this.teamColors = [{ "red": { "name": "River-Plate", "angle": 45, "textColor": 0, "colors": [16777215, 14221312, 16777215], "ballColor": 14221312 }, "blue": { "name": "Boca-Juniors", "angle": 90, "textColor": 16777215, "colors": [16501595, 1260379, 16501595], "ballColor": 1260379 } }, { "red": { "name": "Barcelona", "angle": 0, "textColor": 16772354, "colors": [10813508, 19864, 10813508], "ballColor": 10813508 }, "blue": { "name": "Real-Madrid", "angle": 0, "textColor": 15610446, "colors": [16777215], "ballColor": 16777215 } }, { "red": { "name": "Milan", "angle": 0, "textColor": 16777215, "colors": [0, 16451851, 0], "ballColor": 16451851 }, "blue": { "name": "İnter", "angle": 0, "textColor": 10654049, "colors": [2236192, 26792, 2236192], "ballColor": 26792 } }, { "red": { "name": "Manchester-United", "angle": 0, "textColor": 16507170, "colors": [14297372], "ballColor": 14297372 }, "blue": { "name": "Manchester-City", "angle": 0, "textColor": 16777215, "colors": [7121885], "ballColor": 7121885 } }, { "red": { "name": "Bayern-Münih", "angle": 0, "textColor": 26290, "colors": [14419245], "ballColor": 14419245 }, "blue": { "name": "Borissia-Dortmund", "angle": 0, "textColor": 16777215, "colors": [16638208, 0, 16638208], "ballColor": 16638208 } }, { "red": { "name": "S.L.-Benfica", "angle": 0, "textColor": 16627987, "colors": [15610148], "ballColor": 15610148 }, "blue": { "name": "Sporting-Lizbon", "angle": 90, "textColor": 15974978, "colors": [32855, 16777215, 32855], "ballColor": 32855 } }, { "red": { "name": "PSG", "angle": 0, "textColor": 16777215, "colors": [16752, 14297372, 16752], "ballColor": 14297372 }, "blue": { "name": "Marsilya", "angle": 0, "textColor": 3712728, "colors": [16777215], "ballColor": 3712728 } }]; this.teamColors = [ { red: { name: "Boca-Juniors", angle: 90, textColor: 16777215, colors: [1180673, 9835535, 1180673], ballColor: 4065541, }, blue: { name: "River-Plate", angle: 54, textColor: 56831, colors: [5934], ballColor: 5934, }, }, { red: { name: "Real-Madrid", angle: 60, textColor: 0, colors: [16767296], ballColor: 16767296, }, blue: { name: "Barcelona", angle: 60, textColor: 16777215, colors: [1051768], ballColor: 1051768, }, }, { red: { name: "İnter", angle: 60, textColor: 0, colors: [16777215, 16724242, 16724242], ballColor: 16741729, }, blue: { name: "Milan", angle: 60, textColor: 3735399, colors: [16503, 16503, 8243], ballColor: 13664, }, }, { red: { name: "Manchester-City", angle: 60, textColor: 16777215, colors: [16716306, 0, 16385799], ballColor: 11012104, }, blue: { name: "Manchester-United", angle: 60, textColor: 3735399, colors: [16503, 16503, 8243], ballColor: 13664, }, }, { red: { name: "Borissia-Dortmund", angle: 90, textColor: 16726843, colors: [0, 12968704], ballColor: 6451456, }, blue: { name: "Bayern-Münih", angle: 60, textColor: 16777215, colors: [9408399, 7829367, 0], ballColor: 5723991, }, }, { red: { name: "Sporting-Lizbon", angle: 100, textColor: 0, colors: [16728128, 16728128], ballColor: 16728128, }, blue: { name: "S.L.-Benfica", angle: 60, textColor: 0xffffff, colors: [16777215, null, 190], ballColor: 5592468, }, }, { red: { name: "Boca-Juniors", angle: 60, textColor: 16777215, colors: [15211548], ballColor: 15211548, }, blue: { name: "River-Plate", angle: 666, textColor: 16777215, colors: [197631, 119, 51], ballColor: 65933, }, }, { red: { name: "Real-Madrid", angle: 54, textColor: 15505194, colors: [1315348, 1315348, 8989487], ballColor: 3873309, }, blue: { name: "Barcelona", angle: 60, textColor: 5241343, colors: [330793, 2063], ballColor: 133660, }, }, { red: { name: "İnter", angle: 60, textColor: 16711680, colors: [2039583, 397586, 0], ballColor: 790544, }, blue: { name: "Milan", angle: 60, textColor: 13652, colors: [16777215, 11250603], ballColor: 14013909, }, }, { red: { name: "Manchester-City", angle: 54, textColor: 15505194, colors: [1315348, 1315348, 8989487], ballColor: 3873309, }, blue: { name: "Manchester-United", angle: 160, textColor: 16777215, colors: [564479, 0, 5197647], ballColor: 1920623, }, }, { red: { name: "isim", angle: 45, textColor: 12895428, colors: [13046784, 7802880, 13046784], ballColor: 11276800, }, blue: { name: "isim", angle: 70, textColor: 3383551, colors: [1902, 926110, 2891496], ballColor: 1251238, }, }, { red: { name: "isim", angle: 240, textColor: 6908265, colors: [7667716, 15128792], ballColor: 11365486, }, blue: { name: "isim", angle: 240, textColor: 6908265, colors: [1513310, 15128792], ballColor: 8288155, }, }, { red: { name: "isim", angle: 45, textColor: 16110636, colors: [524800, 1179904], ballColor: 852224, }, blue: { name: "isim", angle: 60, textColor: 16394247, colors: [16776445], ballColor: 16776445, }, }, { red: { name: "isim", angle: 45, textColor: 0, colors: [16711731, 13369395, 10027059], ballColor: 13369395, }, blue: { name: "isim", angle: 45, textColor: 0, colors: [10079487, 6724044, 3368601], ballColor: 6724044, }, }, { red: { name: "isim", angle: 0, textColor: 16776447, colors: [6029826, 11536135, 6029826], ballColor: 7865091, }, blue: { name: "isim", angle: 0, textColor: 5405439, colors: [3342591, 1310797, 3342591], ballColor: 2621635, }, }, { red: { name: "isim", angle: 47, textColor: 0, colors: [16731392, 15222272, 14689536], ballColor: 15547648, }, blue: { name: "isim", angle: 127, textColor: 16777215, colors: [3998814, 2818882, 2163251], ballColor: 2949958, }, }, { red: { name: "isim", angle: 133, textColor: 10913024, colors: [10358024, 16777215, 16777215], ballColor: 14593708, }, blue: { name: "isim", angle: 133, textColor: 10913024, colors: [1843614, 16777215, 16777215], ballColor: 11777502, }, }, { red: { name: "isim", angle: 60, textColor: 16777215, colors: [16716820, 0, 0], ballColor: 5572102, }, blue: { name: "isim", angle: 60, textColor: 16777215, colors: [662527, 0, 0], ballColor: 198997, }, }, { red: { name: "isim", angle: 46, textColor: 1184274, colors: [16716947, 15602313, 13439094], ballColor: 15209094, }, blue: { name: "isim", angle: 126, textColor: 0, colors: [62975, 58862, 50637], ballColor: 57320, }, }, { red: { name: "isim", angle: 46, textColor: 0, colors: [16738922, 15623011, 13456725], ballColor: 15229024, }, blue: { name: "isim", angle: 130, textColor: 0, colors: [65407, 61046, 52582], ballColor: 59507, }, }, { red: { name: "isim", angle: 30, textColor: 16777215, colors: [5507594, 16716306, 5507594], ballColor: 9243660, }, blue: { name: "isim", angle: 30, textColor: 16777215, colors: [790100, 2370303, 790100], ballColor: 1316749, }, }, { red: { name: "EmreDEMIR#7299", angle: 90, textColor: 0, colors: [10247260], ballColor: 10247260, }, blue: { name: "EmreDEMIR#7299", angle: 90, textColor: 0, colors: [7176604], ballColor: 7176604, }, }, { red: { name: "isim", angle: 60, textColor: 0, colors: [16711680, 9371648], ballColor: 13041664, }, blue: { name: "isim", angle: 60, textColor: 0, colors: [65535, 44461], ballColor: 54998, }, }, { red: { name: "isim", angle: 60, textColor: 16777215, colors: [12400895, 4917879, 2229299], ballColor: 6494093, }, blue: { name: "isim", angle: 120, textColor: 16777215, colors: [16749716, 7813176, 3349532], ballColor: 9260365, }, }, { red: { name: "isim", angle: 120, textColor: 16777215, colors: [0, 4013373], ballColor: 1973790, }, blue: { name: "isim", angle: 60, textColor: 0, colors: [16777215, 12763842], ballColor: 14737632, }, }, { red: { name: "isim", angle: 0, textColor: 16777215, colors: [14221312], ballColor: 14221312, }, blue: { name: "isim", angle: 90, textColor: 16777215, colors: [54998, 16711680, 40474], ballColor: 5602384, }, }, { red: { name: "isim", angle: 60, textColor: 0, colors: [16762318, 16770281, 16762318], ballColor: 16764887, }, blue: { name: "isim", angle: 60, textColor: 14329120, colors: [8243, 1846363, 8243], ballColor: 599104, }, }, { red: { name: "isim", angle: 34, textColor: 16777215, colors: [5505041, 16740096, 5046272], ballColor: 9053445, }, blue: { name: "isim", angle: 90, textColor: 16777215, colors: [0, 16725294, 16736827], ballColor: 11153955, }, }, { red: { name: "isim", angle: 53, textColor: 0, colors: [16759055, 15641870, 13473036], ballColor: 15247629, }, blue: { name: "isim", angle: 123, textColor: 0, colors: [9514222, 9055202, 8201933], ballColor: 8923615, }, }, { red: { name: "isim", angle: 30, textColor: 16777215, colors: [10418818, 4762436, 3171906], ballColor: 6073944, }, blue: { name: "isim", angle: 30, textColor: 16777215, colors: [16430777, 11238785, 6705489], ballColor: 11436419, }, }, { red: { name: "isim", angle: 180, textColor: 16772608, colors: [1123947, 9378587, 1123947], ballColor: 3875408, }, blue: { name: "isim", angle: 0, textColor: 0, colors: [16777215], ballColor: 16777215, }, }, ]; this.seriTeamColors = [ { seviye: 0, red: { angle: 60, textColor: 16777215, colors: [16711680, 15204352, 13041664], ballColor: 14942208, }, blue: { angle: 60, textColor: 16777215, colors: [7377, 181, 140], ballColor: 2480, }, }, { seviye: 2, red: { angle: 60, textColor: 0, colors: [13750737, 10921638, 8224125], ballColor: 10921638, }, blue: { angle: 60, textColor: 0, colors: [13750737, 10921638, 8224125], ballColor: 10921638, }, }, { seviye: 5, red: { angle: 60, textColor: 0, colors: [16766720, 15451392, 14399744], ballColor: 15517440, }, blue: { angle: 60, textColor: 0, colors: [16766720, 15451392, 14399744], ballColor: 15517440, }, }, { seviye: 10, red: { angle: 60, textColor: 15790320, colors: [11534512, 10027161, 11534512], ballColor: 11010216, }, blue: { angle: 60, textColor: 15790320, colors: [11534512, 10027161, 11534512], ballColor: 11010216, }, }, { seviye: 15, red: { angle: 60, textColor: 4210752, colors: [12186367], ballColor: 12186367, }, blue: { angle: 60, textColor: 4210752, colors: [12186367], ballColor: 12186367, }, }, { seviye: 20, red: { angle: 45, textColor: 16777215, colors: [3648863, 3118161, 2587972], ballColor: 3118161, }, blue: { angle: 45, textColor: 16777215, colors: [3648863, 3118161, 2587972], ballColor: 3118161, }, }, { seviye: 25, red: { angle: 36, textColor: 16252672, colors: [1184274, 0, 1184274], ballColor: 789516, }, blue: { angle: 36, textColor: 16252672, colors: [1184274, 0, 1184274], ballColor: 789516, }, }, ]; this.defTextColor = 0xffffff; this.defAdminTextColor = 0x42d7f5; this.defBoosterTextColor = 0xfc2328; this.defBoosterAdminTextColor = 0x00ff00; this.defVipTextColor = 0xffd000; this.fixedKufurler = []; this.banOylar = {}; this._ofsaytVurmaPos = { x: 0, y: 0 }; this.macSonu = false; this.maxAvatarCount = 50; this.minAvatarMs = 80; this.defAvatarMs = 350; this.adminCagirBeklemeDk = 10; this.adminCagirKisiBeklemeDk = 60; this.adminCagirCurTime = 0; this.offsideLineDiscX = 1666; this.offsideLineDiscX2 = 1464.9; this.offsideRedDiscIds = []; this.offsideBlueDiscIds = []; this.offsideVARTekrarSS = null; this.offsideVARMacSS = null; this.offsideBallPos = { x: 0, y: 0 }; this.blueUstUsteKazanma = 0; this.redUstUsteKazanma = 0; this.oyuncuSayisiOnStart = 0; this.oyunaSonradanGirenSayisiMacta = 0; this.oyundanSonradanCikanSayisiMacta = 0; this.puanSabitler = { KK: { k: -100, att: 0, def: 1 }, GOL: { k: 100, att: 1, def: 0 }, ASIST: { k: 100, att: 1, def: 0 }, KKYARDIM: { k: -10, att: 0, def: 1 }, GOLKATKI: { k: 20, att: 1, def: 0 }, HATAGOL: { k: -15, att: 0, def: 1 }, //OFSAYT: { k: 1, att: 0.5, def: 0.5 }, //DIREK: { k: 1, att: 0.5, def: 0.5 }, //VURMA: { k: 1, att: 0.5, def: 0.5 }, PAS: { //TOPLAM: { k: 1, att: 0.5, def: 0.5 }, //YANPAS: { k: 1, att: 0.5, def: 0.5 }, //GERIPAS: { k: 1, att: 0.5, def: 0.5 }, //DIKPAS: { k: 1, att: 0.5, def: 0.5 }, //TEKPAS: { k: 1, att: 0.5, def: 0.5 }, //ARAPAS: { k: 1, att: 0.5, def: 0.5 }, //ONUNEPAS: { k: 1, att: 0.5, def: 0.5 }, //AYAGAPAS: { k: 1, att: 0.5, def: 0.5 }, //ISABETLI_TOPLAM: { k: 1, att: 0.5, def: 0.5 }, //ISABETLI_YANPAS: { k: 1, att: 0.5, def: 0.5 }, //ISABETLI_GERIPAS: { k: 1, att: 0.5, def: 0.5 }, //ISABETLI_DIKPAS: { k: 1, att: 0.5, def: 0.5 }, //ISABETLI_TEKPAS: { k: 1, att: 0.5, def: 0.5 }, //ISABETLI_ARAPAS: { k: 1, att: 0.5, def: 0.5 }, //ISABETLI_ONUNEPAS: { k: 1, att: 0.5, def: 0.5 }, //ISABETLI_AYAGAPAS: { k: 1, att: 0.5, def: 0.5 }, //B3_TOPLAM: { k: 3, att: 1, def: 0 }, B3_YANPAS: { k: 6.5, att: 0.7, def: 0.3 }, B3_GERIPAS: { k: 6.5, att: 0.5, def: 0.5 }, B3_DIKPAS: { k: 10, att: 1, def: 0 }, B3_TEKPAS: { k: 6, att: 1, def: 0 }, B3_ARAPAS: { k: 15, att: 1, def: 0 }, //B3_ONUNEPAS: { k: 1, att: 0.5, def: 0.5 }, //B3_AYAGAPAS: { k: 1, att: 0.5, def: 0.5 }, //B3_ISABETLI_TOPLAM: { k: 6, att: 1, def: 0 }, B3_ISABETLI_YANPAS: { k: 12, att: 0.7, def: 0.3 }, B3_ISABETLI_GERIPAS: { k: 12, att: 0.5, def: 0.5 }, B3_ISABETLI_DIKPAS: { k: 20, att: 1, def: 0 }, B3_ISABETLI_TEKPAS: { k: 12, att: 0.6, def: 0.4 }, B3_ISABETLI_ARAPAS: { k: 30, att: 1, def: 0 }, //B3_ISABETLI_ONUNEPAS: { k: 1, att: 1, def: 0.5 }, //B3_ISABETLI_AYAGAPAS: { k: 1, att: 1, def: 0.5 }, //B2_TOPLAM: { k: 1.5, att: 0.5, def: 0.5 }, B2_YANPAS: { k: 3.5, att: 0.5, def: 0.5 }, B2_GERIPAS: { k: 3.5, att: 0.2, def: 0.8 }, B2_DIKPAS: { k: 3.5, att: 0.8, def: 0.2 }, B2_TEKPAS: { k: 3, att: 0.5, def: 0.5 }, B2_ARAPAS: { k: 10, att: 0.7, def: 0.3 }, //B2_ONUNEPAS: { k: 1, att: 0.5, def: 0.5 }, //B2_AYAGAPAS: { k: 1, att: 0.5, def: 0.5 }, // B2_ISABETLI_TOPLAM: { k: 1, att: 0.5, def: 0.5 }, B2_ISABETLI_YANPAS: { k: 6.5, att: 0.5, def: 0.5 }, B2_ISABETLI_GERIPAS: { k: 6.5, att: 0.2, def: 0.8 }, B2_ISABETLI_DIKPAS: { k: 10, att: 0.8, def: 0.2 }, B2_ISABETLI_TEKPAS: { k: 7, att: 0.5, def: 0.5 }, B2_ISABETLI_ARAPAS: { k: 40, att: 0.7, def: 0.3 }, // B2_ISABETLI_ONUNEPAS: { k: 1, att: 0.5, def: 0.5 }, // B2_ISABETLI_AYAGAPAS: { k: 1, att: 0.5, def: 0.5 }, //B1_TOPLAM: { k: 2, att: 0, def: 1 }, B1_YANPAS: { k: 3.5, att: 0.9, def: 0.1 }, B1_GERIPAS: { k: 3, att: 1, def: 0 }, B1_DIKPAS: { k: 3.5, att: 0.7, def: 0.3 }, B1_TEKPAS: { k: 2.5, att: 0.5, def: 0.5 }, B1_ARAPAS: { k: 8, att: 0.7, def: 0.3 }, //B1_ONUNEPAS: { k: 1, att: 0.5, def: 0.5 }, //B1_AYAGAPAS: { k: 1, att: 0.5, def: 0.5 }, //B1_ISABETLI_TOPLAM: { k: 1, att: 0.5, def: 0.5 }, B1_ISABETLI_YANPAS: { k: 7, att: 0.9, def: 0.1 }, B1_ISABETLI_GERIPAS: { k: 6, att: 1, def: 0 }, B1_ISABETLI_DIKPAS: { k: 15, att: 0.7, def: 0.3 }, B1_ISABETLI_TEKPAS: { k: 5, att: 0.5, def: 0.5 }, B1_ISABETLI_ARAPAS: { k: 16, att: 0.7, def: 0.3 }, //B1_ISABETLI_ONUNEPAS: { k: 1, att: 0.5, def: 0.5 }, //B1_ISABETLI_AYAGAPAS: { k: 1, att: 0.5, def: 0.5 } }, SUT: { //TOPLAM: { k: 7, att: 0.5, def: 0.5 }, //ISABETLI_TOPLAM: { k: 14, att: 0.5, def: 0.5 }, B3_TOPLAM: { k: 7.5, att: 1, def: 0 }, B3_ISABETLI_TOPLAM: { k: 14, att: 1, def: 0 }, B2_TOPLAM: { k: 20, att: 0.9, def: 0.1 }, B2_ISABETLI_TOPLAM: { k: 35, att: 0.9, def: 0.1 }, B1_TOPLAM: { k: 40, att: 0.7, def: 0.3 }, B1_ISABETLI_TOPLAM: { k: 60, att: 0.7, def: 0.3 }, }, KURTARMA: { //OK_TOPLAM: { k: 1, att: 0.5, def: 0.5 }, OK_KALEYEDOGRU: { k: 20, att: 0, def: 1 }, OK_SERT: { k: 15, att: 0, def: 1 }, OK_SERT_KALEYEDOGRU: { k: 35, att: 0, def: 1 }, //TRY_TOPLAM: { k: 1, att: 0.5, def: 0.5 }, TRY_KALEYEDOGRU: { k: 2, att: 0, def: 1 }, TRY_SERT: { k: 1.5, att: 0, def: 1 }, TRY_SERT_KALEYEDOGRU: { k: 3, att: 0, def: 1 }, }, MUDAHALE: { //TOPLAM: { k: 1, att: 0.5, def: 0.5 }, //TERSVURUS: { k: 1, att: 0.5, def: 0.5 }, //KESME: { k: 1, att: 0.5, def: 0.5 }, //UZAKLASTIRMA: { k: 1, att: 0.5, def: 0.5 }, //B3_TOPLAM: { k: 1, att: 0.5, def: 0.5 }, // B3_TERSVURUS: { k: 1, att: 0.5, def: 0.5 }, B3_KESME: { k: 10, att: 0.5, def: 0.5 }, B3_UZAKLASTIRMA: { k: 1, att: 0.6, def: 0.4 }, // B2_TOPLAM: { k: 1, att: 0.5, def: 0.5 }, // B2_TERSVURUS: { k: 1, att: 0.5, def: 0.5 }, B2_KESME: { k: 5, att: 0.2, def: 0.8 }, B2_UZAKLASTIRMA: { k: 5, att: 0.1, def: 0.9 }, // B1_TOPLAM: { k: 1, att: 0.5, def: 0.5 }, // B1_TERSVURUS: { k: 1, att: 0.5, def: 0.5 }, B1_KESME: { k: 10, att: 0, def: 1 }, B1_UZAKLASTIRMA: { k: 10, att: 0.1, def: 0.9 }, }, TOP_KAPMA: { //TOPLAM: { k: 1, att: 0.5, def: 0.5 }, B3_TOPLAM: { k: 4, att: 0.8, def: 0.2 }, B2_TOPLAM: { k: 1.5, att: 0.5, def: 0.5 }, B1_TOPLAM: { k: 4, att: 0, def: 1 }, }, TOP_KAYBI: { //TOPLAM: { k: 1, att: 0.5, def: 0.5 }, B3_TOPLAM: { k: -2, att: 0.8, def: 0.2 }, B2_TOPLAM: { k: -3, att: 0.5, def: 0.5 }, B1_TOPLAM: { k: -8, att: 0, def: 1 }, }, }; this.mapMod = MapMod.NORMAL; this.pwd = "b9^23+^,345=^D656SA6=&Z max) { max = data[key]; maxUser = key; } } let content = joins + "\nOda #" + odaNo + "'de bu ay en çok giriş yapan kullanıcı: " + maxUser + " -> " + max + " defa."; this.playerCountSendToDiscord(content); } //günlük giriş playerCountReportMostDaily() { let data = localStorage.getItem("player_count_data_daily"); data = JSON.parse(data); var count = Object.keys(data).length; let joins = "Oda #" + odaNo + "'e bugün giriş yapan farklı oyuncu sayısı: " + count; let max = 0; let maxUser = ""; for (let key in data) { if (data[key] > max) { max = data[key]; maxUser = key; } } let content = joins + "\nOda #" + odaNo + "'de bugün en çok giriş yapan kullanıcı: " + maxUser + " -> " + max + " defa."; this.playerCountSendToDiscord(content); var object = {}; localStorage.setItem("player_count_data_daily", JSON.stringify(object)); } //haftalık giriş playerCountReportMostWeekly() { let data = localStorage.getItem("player_count_data_weekly"); data = JSON.parse(data); var count = Object.keys(data).length; let joins = "Oda #" + odaNo + "'e bu hafta giriş yapan farklı oyuncu sayısı: " + count; let max = 0; let maxUser = ""; for (let key in data) { if (data[key] > max) { max = data[key]; maxUser = key; } } let content = joins + "\nOda #" + odaNo + "'de bu hafta en çok giriş yapan kullanıcı: " + maxUser + " -> " + max + " defa."; this.playerCountSendToDiscord(content); var object = {}; localStorage.setItem("player_count_data_weekly", JSON.stringify(object)); } //sayım verilerini discord'a gönder playerCountSendToDiscord = (content) => { let request = new XMLHttpRequest(); request.open( "POST", "https://discord.com/api/webhooks/854383216727556096/g34Iixb2IJKsF5CYjsd-o2Ftj_nu-sRbk0rMgWe2gKuJItT4XpCPmW4VGi_hTdq8znHO" ); request.setRequestHeader("Content-type", "application/json"); let params = { content: content, }; request.send(JSON.stringify(params)); }; //#endregion anoriginalnick-sayac setGolBuyume(p) { if (!p.vip) { return; } p.golBuyumeTimeout = setTimeout(() => { if (p) { room.setPlayerDiscProperties(p.id, { radius: 15 }); } }, 3000); room.setPlayerDiscProperties(p.id, { radius: 100 }); } addOverriteUyes(newUyes) { let uyes = gameContext.getUyeStore(); for (let i in newUyes) { let newUye = newUyes[i]; uyes[i] = newUye; } gameContext.setUyeStore(uyes); } getUyeStorOnlyAdmin() { let uyes = gameContext.getUyeStore(); let admins = {}; for (let i in uyes) { let uye = uyes[i]; if (uye.admin || uye.gizliAdmin) { uye.onlineSure = 0; admins[i] = uye; } } return JSON.stringify(admins); } showAdmSure(ad) { let uyeStore = gameContext.getUyeStore(); let u = uyeStore[ad]; let p = gameContext.getPlayerByName(ad); if (u == null) { return "Böyle bir kullanıcı yok!"; } if (!u.admin) { return "Bu kullanıcı admin değil!"; } let sure = (p && p.onay && p.loginTime > 0 ? new Date().getTime() - p.loginTime : 0) + u.onlineSure; return ad + ", online olma süresi " + getTimeToText(sure); } getBallColor(team, ters = false) { let t = team; if (ters) { t = t == TeamEnum.RED ? TeamEnum.BLUE : TeamEnum.RED; } return t == TeamEnum.RED ? gameContext.currentTeamColor.red.ballColor : gameContext.currentTeamColor.blue.ballColor; } getBallColorInv(team) { return this.getBallColor(team, true); } getTeamColorBySeri(seri) { for (let i = gameContext.seriTeamColors.length - 1; i > -1; i--) { if (gameContext.seriTeamColors[i]["seviye"] <= seri) { return gameContext.seriTeamColors[i]; } } } setToDefaultPlayerColor(ters = false, res = false) { let red = ters ? 2 : 1; let blue = ters ? 1 : 2; let c = gameContext.currentTeamColor; if (c == null || res) { gameContext.blueUstUsteKazanma; gameContext.redUstUsteKazanma; let redColor = gameContext.getTeamColorBySeri( gameContext.redUstUsteKazanma ); let blueColor = gameContext.getTeamColorBySeri( gameContext.blueUstUsteKazanma ); gameContext.currentTeamColor = { red: redColor["red"], blue: blueColor["blue"], }; c = gameContext.currentTeamColor; } let cr = c.red; let cb = c.blue; room.setTeamColors(red, cr.angle, cr.textColor, cr.colors); room.setTeamColors(blue, cb.angle, cb.textColor, cb.colors); //room.setTeamColors(TeamEnum.RED, 60, 0xFFFFFF, [0xFF0A0A]); //room.setTeamColors(TeamEnum.BLUE, 60, 0xFFFFFF, [0x0558FF]); } isStaEklenebilir() { return ( gameContext.getPlayers().filter((x) => x.team != TeamEnum.SPECTATORS) .length > 7 && gameContext.getMapState() != MapState.Penalty ); } adminEkle(name, textColor = -1) { let uyes = gameContext.getUyeStore(); if (uyes[name]) { uyes[name].textColor = textColor; if (uyes[name].admin) { gameContext.setUyeStore(uyes); return "Bu üye zaten admin sadece yazı rengi güncellendi."; } else { uyes[name].admin = true; uyes[name].gizliAdmin = false; gameContext.setUyeStore(uyes); return "Başarıyla admin yapıldı. :)"; } } else { return "Böyle bir üye kaydı yok !"; } } gizliAdminEkle(name, textColor = -1) { let uyes = gameContext.getUyeStore(); if (uyes[name]) { uyes[name].textColor = textColor; if (uyes[name].gizliAdmin) { gameContext.setUyeStore(uyes); return "Bu üye zaten gizli admin sadece yazı rengi güncellendi."; } else { uyes[name].admin = false; uyes[name].gizliAdmin = true; gameContext.setUyeStore(uyes); return "Başarıyla gizli admin yapıldı. :)"; } } else { return "Böyle bir üye kaydı yok !"; } } ownerEkle(name) { let uyes = gameContext.getUyeStore(); if (uyes[name]) { uyes[name].owner = true; gameContext.setUyeStore(uyes); return "Başarıyla owner yapıldı. :)"; } else { return "Böyle bir üye kaydı yok !"; } } ownerSil(name) { let uyes = gameContext.getUyeStore(); if (uyes[name]) { uyes[name].owner = false; gameContext.setUyeStore(uyes); return "Başarıyla owner silindi. :)"; } else { return "Böyle bir üye kaydı yok !"; } } vipCokluEkle(...args) { let uyes = gameContext.getUyeStore(); let s = ""; args.forEach((name) => { if (uyes[name]) { if (uyes[name].vip) { s += "\r\nBu üye zaten VIP sadece yazı rengi ve seviyesi güncellendi."; } else { uyes[name].vip = true; s += "\r\nBaşarıyla VIP yapıldı. :)"; } } else { s += "\r\nBöyle bir üye kaydı yok !"; } }); gameContext.setUyeStore(uyes); return s; } vipEkle(name, textColor = -1) { let uyes = gameContext.getUyeStore(); if (uyes[name]) { uyes[name].textColor = textColor; if (uyes[name].vip) { gameContext.setUyeStore(uyes); return "Bu üye zaten VIP sadece yazı rengi ve seviyesi güncellendi."; } else { uyes[name].vip = true; gameContext.setUyeStore(uyes); return "Başarıyla VIP yapıldı. :)"; } } else { return "Böyle bir üye kaydı yok !"; } } boosterEkle(name, textColor = -1, seviye = 0) { let uyes = gameContext.getUyeStore(); if (uyes[name]) { uyes[name].textColor = textColor; if (seviye > 0) { uyes[name].boosterSeviye = seviye; } if (uyes[name].booster) { gameContext.setUyeStore(uyes); return "Bu üye zaten booster sadece yazı rengi ve seviyesi güncellendi."; } else { uyes[name].booster = true; uyes[name].boosterSeviye = seviye < 1 ? 1 : seviye; gameContext.setUyeStore(uyes); return "Başarıyla booster yapıldı. :)"; } } else { return "Böyle bir üye kaydı yok !"; } } uyeSil(name) { let uyes = gameContext.getUyeStore(); let stas = gameContext.getStas(); if (uyes[name]) { delete uyes[name]; delete stas[name]; gameContext.setUyeStore(uyes); gameContext.setIstatistikStore(stas); console.log("Üye başarıyla silindi"); } else { console.log("Belirttiğiniz isimde üye yok!"); } } adminSil(name) { let uyes = gameContext.getUyeStore(); if (uyes[name]) { if (uyes[name].admin) { uyes[name].admin = false; gameContext.setUyeStore(uyes); return "Başarıyla bu üyenin adminliğini iptal ettin."; } else { return "Bu üye zaten admin değil !"; } } else { return "Böyle bir üye kaydı yok !"; } } gizliAdminSil(name) { let uyes = gameContext.getUyeStore(); if (uyes[name]) { if (uyes[name].gizliAdmin) { uyes[name].gizliAdmin = false; gameContext.setUyeStore(uyes); return "Başarıyla bu üyenin gizli adminliğini iptal ettin."; } else { return "Bu üye zaten gizli admin değil !"; } } else { return "Böyle bir üye kaydı yok !"; } } vipSil(name) { let uyes = gameContext.getUyeStore(); if (uyes[name]) { if (uyes[name].vip) { uyes[name].vip = false; uyes[name].textColor = -1; gameContext.setUyeStore(uyes); return "Başarıyla bu üyenin VIP durumunu iptal ettin."; } else { return "Bu üye zaten VIP değil !"; } } else { return "Böyle bir üye kaydı yok !"; } } boosterSil(name) { let uyes = gameContext.getUyeStore(); if (uyes[name]) { if (uyes[name].booster) { uyes[name].booster = false; uyes[name].boosterSeviye = 0; uyes[name].textColor = -1; gameContext.setUyeStore(uyes); return "Başarıyla bu üyenin boosterini iptal ettin."; } else { return "Bu üye zaten booster değil !"; } } else { return "Böyle bir üye kaydı yok !"; } } getBolgeler() { return gameContext.isRsv6mi ? SETTINGS.Physics.BolgelerV6 : SETTINGS.Physics.BolgelerV4; } getCurrentMaxPlayer() { if (gameContext.state() == GameState.SELECTEDPLAYER) { return gameContext.isRsv6mi ? SETTINGS.Game.maxPlayerV6 : SETTINGS.Game.maxPlayerV4; } else { return gameContext.isRsV6Acilsin ? SETTINGS.Game.maxPlayerV6 : SETTINGS.Game.maxPlayerV4; } } benzerSekilCharReplace(msg, bosluklu = false, allowDuplicate = false) { msg = msg.toLowerCase(); msg = msg.replace("0", "o"); msg = msg.replace("é", "e"); msg = msg.replace("€", "e"); msg = msg.replace("£", "e"); msg = msg.replace("!", "i"); msg = msg.replace("$", "ş"); msg = msg.replace("@", "a"); msg = msg.replace("ı", "i"); msg = msg.replace("1", "i"); msg = msg.replace("3", "e"); msg = msg.replace("4", "a"); msg = msg.replace("5", "s"); msg = msg.replace("6", "g"); msg = msg.replace("0", "o"); if (bosluklu) { msg = msg.replace(/[^A-Za-züçğşöı\s]/g, ""); } else { msg = msg.replace(/[^A-Za-züçğşöı]/g, ""); } if (!allowDuplicate) { msg = removeDuplicateCharacters(msg); } return msg; } updateFixedKufurler() { gameContext.fixedKufurler = []; for (let i = 0; i < SETTINGS.Game.kufurler.length; i++) { gameContext.fixedKufurler.push( gameContext.benzerSekilCharReplace( SETTINGS.Game.kufurler[i], false, true ) ); } } supheliKufurAlgila(msg) { let minSim = 0.858; let kufur = false; let kesin = false; let maxKelimeLen = SETTINGS.Game.mesajSiniri; let minSimKelimeLen = 2; msg = msg.substr(0, Math.min(msg.length, maxKelimeLen)); let fixedMsg = gameContext.benzerSekilCharReplace(msg); if (fixedMsg == "") { return false; } let sim = 0; let fixedBoslukluMsg = gameContext.benzerSekilCharReplace(msg, true); let msgParts = fixedBoslukluMsg.split(" "); for (let i = 0; i < gameContext.fixedKufurler.length; i++) { let m = gameContext.fixedKufurler[i]; sim = 0; // cümle benzerlik bul if ( minSim + Math.abs(m.length - fixedMsg.length) / Math.max(m.length, fixedMsg.length) <= 1 && // m[0] == fixedMsg[0] && (m == fixedMsg || (sim = similarity(m, fixedMsg)) >= minSim) ) { kufur = true; kesin = m == fixedMsg; //console.log("k-cümle: sim: " + sim + " küfür:" + m + " msg:" + fixedMsg + " eq:" + (m == fixedMsg) + "kesin:" + kesin); return kufur; } for (let k = 0; k < msgParts.length; k++) { let p = msgParts[k]; if ( minSim + Math.abs(m.length - p.length) / Math.max(m.length, p.length) <= 1 && // m[0] == p[0] && (p == m || (p.length >= minSimKelimeLen && (sim = similarity(p, m)) >= minSim)) ) { //console.log("k-part: sim: " + sim + " küfür:" + m + " msg:" + p); kufur = true; kesin = m == p; return kufur; } } } let possiblyKelimeler = []; for (let b = 0; b < msgParts.length - 1; b++) { let kelime = msgParts[b]; for (let e = b + 1; e < msgParts.length; e++) { kelime += msgParts[e]; possiblyKelimeler.push({ text: kelime, }); } } for (let i = 0; i < SETTINGS.Game.kufurler.length; i++) { let v = SETTINGS.Game.kufurler[i]; for (let k = 0; k < possiblyKelimeler.length; k++) { let m = possiblyKelimeler[k]; if ( v.length >= minSimKelimeLen && minSim + Math.abs(m.text.length - v.length) / Math.max(m.text.length, v.length) <= 1 ) { if ( v == m || (sim = similarity(m.text, v)) >= minSim // && m[0] == v[0] ) { kufur = true; kesin = v == m; //console.log("k-possibly: sim: " + sim + " küfür:" + v + " msg:" + m); return kufur; } } } } return kufur; } isSekilliYazi(s) { return ( s != s.replace( /[^A-Za-z0-9üçğşöıÜÖİÇĞŞ\s"\!'^+%\&/\(\)=\?_<>£#$½\{\[\]\}\\|~`,;@*.:\-/,<>|€]/g, "" ) ); } isOwnerOlur(player) { let uyes = gameContext.getUyeStore(); if (uyes[player.name] && uyes[player.name].owner) { return true; } return false; } isAdminOlur(player) { let uyes = gameContext.getUyeStore(); if ( uyes[player.name] && (uyes[player.name].admin || uyes[player.name].gizliAdmin) ) { return true; } return false; } isBoosterOlur(player) { let uyes = gameContext.getUyeStore(); if (uyes[player.name] && uyes[player.name].booster) { return true; } return false; } isVipOlur(player) { let uyes = gameContext.getUyeStore(); if (uyes[player.name] && uyes[player.name].vip) { return true; } return false; } getAdminIdsStore() { let st = localStorage.getItem("hax_rs_adminIds"); if (st == null) { localStorage.setItem( "hax_rs_adminIds", JSON.stringify(SETTINGS.Game.adminAuths) ); } return JSON.parse(localStorage.getItem("hax_rs_adminIds")); } setAdminIdsStore(obj) { localStorage.setItem("hax_rs_adminIds", JSON.stringify(obj)); } checkAdminGeldi(player) { let uyes = gameContext.getUyeStore(); if (uyes[player.name] && uyes[player.name].gizliAdmin) { let p = gameContext.getPlayerById(player.id); if (p) { p.gizliAdmin = true; } } if (uyes[player.name] && uyes[player.name].admin) { player.admin = true; room.setPlayerAdmin(player.id, true); room.sendAnnouncement("? ????? | ɢɪʀɪs ʏᴀᴘᴛɪ", null, 0xf56200); sendAdminLog(player.name); } if (uyes[player.name] && uyes[player.name].booster) { room.sendAnnouncement("? ??????? | ɢɪʀɪs ʏᴀᴘᴛɪ", null, 0xaa00aa); } if (uyes[player.name] && uyes[player.name].vip) { room.sendAnnouncement("⭐ ??? | ɢɪʀɪs ʏᴀᴘᴛɪ", null, 0xffe600); } //if (gameContext.getAdminIdsStore().includes(player.auth)) { // player.admin = true; // room.setPlayerAdmin(player.id, true); // room.sendAnnouncement("Bir admin teşrif etti"); //} } addAdminId(id) { let store = gameContext.getAdminIdsStore(); if (store.find((x) => x == id)) { return; } store.push(id); gameContext.setAdminIdsStore(store); } delAdminId(id) { let store = gameContext.getAdminIdsStore(); store = store.filter((x) => x != id); gameContext.setAdminIdsStore(store); } showBestRutbes() { var unranked = "? Unranked | "; var bronz = "? Bronz | "; var silver = "⚪ Silver | "; var gold = "? Gold | "; var plat = "? Platinum | "; var diam = "? Diamond | "; var chall = "? Challenger | "; var Legendary = "? Legendary |"; var Icon = "?️ Icon |"; var Goat = "? GOAT |"; var unrankedS = 0; var bronzS = 0; var silverS = 0; var goldS = 0; var platS = 0; var diamS = 0; var challS = 0; var LegendaryS = 0; var IconS = 0; var GoatS = 0; var players = gameContext.getIstatistikStore(); var playersInRoom = gameContext.getPlayers(true); for (var i in players) { if (!playersInRoom.find((x) => x.name == i)) { continue; } var userpn = players[i].rank; if (userpn < 100) { unrankedS = 1; unranked = unranked + "[ " + i + " ] "; } else if (userpn < 250) { bronzS = 1; bronz = bronz + "[ " + i + " ] "; } else if (userpn < 500) { silverS = 1; silver = silver + "[ " + i + " ] "; } else if (userpn < 750) { goldS = 1; gold = gold + "[ " + i + " ] "; } else if (userpn < 1000) { platS = 1; plat = plat + "[ " + i + " ] "; } else if (userpn < 2000) { diamS = 1; diam = diam + "[ " + i + " ] "; } else if (userpn < 3000) { challS = 1; chall = chall + "[ " + i + " ] "; } else if (userpn < 4000) { LegendaryS = 1; Legendary = Legendary + "[ " + i + " ] "; } else if (userpn < 5000) { IconS = 1; Icon = Icon + "[ " + i + " ] "; } else { GoatS = 1; Goat = Goat + "[ " + i + " ] "; } } if (unrankedS == 1) { room.sendAnnouncement(unranked, null, 0x289e37, "normal", 1); } if (bronzS == 1) { room.sendAnnouncement(bronz, null, 0xba7b29, "normal", 0); } if (silverS == 1) { room.sendAnnouncement(silver, null, 0x9ea1b0, "normal", 0); } if (goldS == 1) { room.sendAnnouncement(gold, null, 0xffd21f, "normal", 0); } if (platS == 1) { room.sendAnnouncement(plat, null, 0x25a1ba, "normal", 0); } if (diamS == 1) { room.sendAnnouncement(diam, null, 0xab6aab, "normal", 0); } if (challS == 1) { room.sendAnnouncement(chall, null, 0xab0000, "normal", 0); } if (LegendaryS == 1) { room.sendAnnouncement(Legendary, null, 0xfc9307, "normal", 0); } if (IconS == 1) { room.sendAnnouncement(Icon, null, 0xffffff, "normal", 0); } if (GoatS == 1) { room.sendAnnouncement(Goat, null, 0x776969, "normal", 0); } } showRutbe(name) { let sta = gameContext.getSta(name); let s = ""; if (sta == null) { s = name + ", rank verisi yok!"; } else { let rutbe = gameContext.getRutbeByRank(sta.rank); s = name + ", " + rutbe + " " + sta.rank + " puan"; } room.sendAnnouncement(s, null, null, "bold"); } getRutbeEmojiByUser(name) { let ists = gameContext.tempStas; let ist = ists[name]; if (ist == null) { return ""; } let userpn = ist.rank; if (userpn < 100) { return "?"; } else if (userpn < 250) { return "?"; } else if (userpn < 500) { return "⚪"; } else if (userpn < 750) { return "?"; } else if (userpn < 1000) { return "?"; } else if (userpn < 2000) { return "?"; } else if (userpn < 3000) { return "?"; } else if (userpn < 4000) { return "?"; } else if (userpn < 5000) { return "?️"; } else { return "?"; } } getRutbeByRank(rank) { var userpn = rank; if (userpn < 100) { return "? Unranked"; } else if (userpn < 250) { return "? Bronz"; } else if (userpn < 500) { return "⚪ Silver"; } else if (userpn < 750) { return "? Gold"; } else if (userpn < 1000) { return "? Platinum"; } else if (userpn < 2000) { return "? Diamond"; } else if (userpn < 3000) { return "? Challenger"; } else if (userpn < 4000) { return "? Legendary"; } else if (userpn < 5000) { return "?️ Icon"; } else { return "? Goat"; } } checkTacDokunmas() { if (gameContext._disariTeam == -1) { return; } let ballPos = room.getBallPosition(); gameContext.getPlayers().forEach((p) => { gameContext.checkTacDokunma(ballPos, p); }); } checkTacDokunma(ballPos, p, vurma) { if (!ballPos || !p.position) { return; } if ( !p.cezali && gameContext._disariTeam > 0 && gameContext._disariTeam != p.team && ballPos && (vurma || CollisionDetection.playerBall(ballPos, p.position)) ) { let tacCizgi = gameContext.getStadMeasure().tacCizgi; if (gameContext._disariDurum == DisariDurum.TAC) { gameContext.checkTacUzaklas(true); gameContext.uyariCizgi(p, true); let ballPos = room.getBallPosition(); if (ballPos) { setTimeout(() => { room.setDiscProperties(0, { x: ballPos.x, y: ballPos.y, xspeed: 0, yspeed: 0, }); }, 10); } } else if (gameContext._disariDurum == DisariDurum.AUT) { gameContext.checkAutUzaklas(true); gameContext.uyariCizgi(p, true); } } } uyariCizgi(v, cezasiz = false) { let ballPos = room.getBallPosition(); let tacCizgi = gameContext.getStadMeasure().tacCizgi; let maxcizgiSayisi = SETTINGS.Physics.maxcizgiSayisi; if (!cezasiz) { v.cizgiSayisi++; } if (gameContext._disariDurum == DisariDurum.TAC) { gameContext._tacCizgiLock = true; } else if (gameContext._disariDurum == DisariDurum.AUT) { gameContext._autCizgiLock = true; } else if (gameContext._disariDurum == DisariDurum.KORNER) { gameContext._kornerCizgiLock = true; } if (!cezasiz) { room.sendAnnouncement( v.name + " Çizgi: {" + v.cizgiSayisi + " / 4}", null, 0x00ff00, "bold", 1 ); } else { return; } if (v.cizgiSayisi >= maxcizgiSayisi) { if ( gameContext.getMapState() == MapState.RSv6 || gameContext.getMapState() == MapState.RSV4 ) { if (v.cizgiSayisi >= maxcizgiSayisi + 1) { room.kickPlayer( v.id, "4 kere çizgi ihlali yaptığınız için banlandınız!", true ); } else { room.sendAnnouncement( v.name + "? ? ᴅᴀᴋɪᴋᴀ ʙᴏʏᴜɴᴄᴀ ᴍᴇᴠᴋɪ ᴄᴇᴢᴀsɪ ᴀʟᴅɪ, ʙɪʀᴅᴀʜᴀ ʏᴀᴘᴀʀsᴀ ???'ʟᴀɴᴀᴄᴀᴋ." ); let time = room.getScores().time + 60; v.cezali = true; if (v.team == TeamEnum.RED) { room.setPlayerDiscProperties(v.id, { x: -100, y: 700 }); } else if (v.team == TeamEnum.BLUE) { room.setPlayerDiscProperties(v.id, { x: 100, y: 700 }); } v.cezaInterval = setInterval(() => { let t = room.getScores(); if (!t) { return; } if (t.time >= time) { room.setPlayerDiscProperties(v.id, { x: 0, y: 550 }); clearInterval(v.cezaInterval); v.cezali = false; } else { /* if (v.team == TeamEnum.RED) { room.setPlayerDiscProperties(v.id, { x: -300, y: 800 }); } else if (v.team == TeamEnum.BLUE) { room.setPlayerDiscProperties(v.id, { x: 300, y: 800 }); }*/ } }, 1000); } } } } sureliliYasakla(name) { gameContext.sureliYasaklilar[name] = { name: name, time: new Date(new Date().getTime() + 60 * 60 * 1000).getTime(), }; room.sendAnnouncement( name + ", oyun sırasında oyundan çıktığı için 1 saat odaya girmesi yasaklandı!", null, 0xffff00, "bold", 2 ); } updateSureliliYasaklilar() { let time = new Date().getTime() + 60 * 1000; for (var i in gameContext.sureliYasaklilar) { let yas = gameContext.sureliYasaklilar[i]; if (time >= yas.time) { delete gameContext.sureliYasaklilar[i]; } } } checkSureliYasakli(name) { gameContext.updateSureliliYasaklilar(); return gameContext.sureliYasaklilar[name]; } chgPwd(p, pwd) { let uyeStore = gameContext.getUyeStore(); let u = uyeStore[p.name]; if (u == null) { return false; } else { uyeStore[p.name].pwd = pwd; uyeStore[p.name].auths = [p.auth]; gameContext.setUyeStore(uyeStore); //gameContext.login(p); return true; } } kaydol(p, pwd) { let uyeStore = gameContext.getUyeStore(); let u = uyeStore[p.name]; if (u) { room.sendAnnouncement( "? ʙᴜ ɴɪᴄᴋɴᴀᴍᴇ ᴋᴜʟʟᴀɴɪᴍᴅᴀ.", p.id, 0xff0000, "bold", 2 ); return false; } else { uyeStore[p.name] = new Uye({ name: p.name, pwd: pwd }); gameContext.setUyeStore(uyeStore); gameContext.login(p); return true; } } getRealMesafe(mesafe) { let mm = (120 / gameContext.getStadMeasure().kornerCizgiX) * mesafe * 1000; let res = ""; if (mm >= 1000) { res = Math.round(mm / 1000) + " metre"; } else if (mm >= 10) { res = Math.round(mm / 10) + " santim"; } else if (mm >= 1) { res = Math.round(mm / 1) + " milim"; } else { res = "Milimden daha ince"; } return res; } getBallRealHiz() { let disc = room.getDiscProperties(0); if (disc == null) { return ""; } let hiz = Math.max(Math.abs(disc.xspeed), Math.abs(disc.yspeed)); hiz = ((120 / gameContext.getStadMeasure().kornerCizgiX) * (hiz * 60 * 60 * 60)) / 1000; return "?" + hiz.toFixed(2) + " ᴋᴍ/s"; } setRsV6State(state) { gameContext.rsV6state = state; } loginWithAuth(player) { let uyeStore = gameContext.getUyeStore(); if ( uyeStore[player.name] && uyeStore[player.name].auths.find((x) => x == player.auth) ) { return gameContext.login(player, uyeStore); } return false; } loginWithPwd(player, pwd, uyeStore) { uyeStore = uyeStore ? uyeStore : gameContext.getUyeStore(); let p = gameContext.getPlayerById(player.id); let u = uyeStore[p.name]; if (p == null || u == null || u.pwd != pwd) { return false; } return gameContext.login(player, uyeStore); } login(player, uyeStore) { uyeStore = uyeStore ? uyeStore : gameContext.getUyeStore(); let p = gameContext.getPlayerById(player.id); let u = uyeStore[p.name]; if (p == null || u == null) { return false; } clearTimeout(p.onayTimeout); p.onay = true; p.afk = false; p.vip = u.vip; p.boosterSeviye = u.boosterSeviye; p.booster = u.booster; p.textColor = u.textColor; p.owner = u.owner; if (!u.auths.find((x) => x == p.auth)) { u.auths.push(p.auth); gameContext.setUyeStore(uyeStore); } if (!u.conns.find((x) => x == p.conn)) { u.conns.push(p.conn); gameContext.setUyeStore(uyeStore); } room.sendAnnouncement( String.format("? {0}, ᴋɪᴍʟɪᴋ ᴅᴏɢʀᴜʟᴀᴍᴀ ʙᴀsᴀʀɪʟɪ.", player.name), player.id, 0x00ff00, "bold", 2 ); gameContext.checkAdminGeldi(player); return true; } getStaByKey(k) { let sta = gameContext.getStas(); let array = []; for (let key in sta) { array.push({ name: key, value: sta[key][k], }); } let sorted = array .sort(function (a, b) { return a.value < b.value ? 1 : b.value < a.value ? -1 : 0; }) .slice(0, 5); let s = ""; let sira = 1; for (let key in sorted) { if (sorted[key].value != undefined) { s += sira + ". " + sorted[key].name + "(" + sorted[key].value + " " + k + ") "; sira++; } } return s; } getStas() { return gameContext.getIstatistikStore(); } resetOnlineSureler() { let store = gameContext.getUyeStore(); for (let i in store) { let u = store[i]; u.onlineSure = 0; } gameContext.setUyeStore(store); } resetSta(name) { let staStore = gameContext.getIstatistikStore(); staStore[name] = new StaInfo(); gameContext.setIstatistikStore(staStore); } getSta(name) { let staStore = gameContext.getIstatistikStore(); let s = staStore[name]; if (s == null) { staStore[name] = new StaInfo(); s = staStore[name]; } return s; } setUyeStore(obj) { localStorage.setItem("hax_rs_uye", JSON.stringify(obj)); } getUyeStore() { let st = localStorage.getItem("hax_rs_uye"); if (st == null) { localStorage.setItem("hax_rs_uye", JSON.stringify({})); } let items = JSON.parse(localStorage.getItem("hax_rs_uye")); for (let i in items) { items[i] = new Uye(items[i]); } return items; } getEnOnline5Kisi() { let sortable = []; let uyeStore = gameContext.getUyeStore(); for (let i in uyeStore) { let u = uyeStore[i]; let p = gameContext.getPlayerByName(i); let sure = gameContext.getOnlineSureByUser(u, p); sortable.push([i, sure]); } sortable.sort(function (a, b) { return b[1] - a[1]; }); return sortable.slice(0, 5); } getBeautyEnOnline5Kisi() { let us = gameContext.getEnOnline5Kisi(); let s = ""; for (let i in us) { let u = us[i]; s += u[0] + ", " + getTimeToText(u[1]); } return s; } getEnOnlineKisi() { let sortable = []; let uyeStore = gameContext.getUyeStore(); for (let i in uyeStore) { let u = uyeStore[i]; let p = gameContext.getPlayerByName(i); let sure = gameContext.getOnlineSureByUser(u, p); sortable.push([i, sure]); } sortable.sort(function (a, b) { return b[1] - a[1]; }); return sortable[0]; } showEnOnline() { let u = gameContext.getEnOnlineKisi(); if (u) { room.sendAnnouncement( "✔️ ᴇɴ ᴏɴʟɪɴᴇ ᴋɪsɪ: " + u[0] + ", " + getTimeToText(u[1]), null, 0xff739d ); } else { room.sendAnnouncement("Hiç kimse online olmamış :(", null, 0xff739d); } } getOnlineSureByUser(u, p) { if (p == null) { return u.onlineSure; } return ( (p.loginTime > 0 && p.onay ? new Date().getTime() - p.loginTime : 0) + u.onlineSure ); } showOnlineSure(p) { let sure = gameContext.getOnlineSure(p); room.sendAnnouncement( p.name + ", ᴏɴʟɪɴᴇ sᴜʀᴇɴɪᴢ: " + getTimeToText(sure) + " (? ᴏɴᴀʏʟɪ ᴏʟᴍᴀʏᴀɴ ᴋᴜʟʟᴀɴɪᴄɪʟᴀʀıɴ, ᴏɴʟɪɴᴇ sᴜʀᴇsɪ ᴋᴀʏᴅᴇᴅɪʟᴍᴇᴢ.)", null, 0xff739d ); } getOnlineSure(p) { let uyeStore = gameContext.getUyeStore(); let u = uyeStore[p.name]; if (u && p.loginTime > 0 && p.onay) { return new Date().getTime() - p.loginTime + u.onlineSure; } else { return 0; } } updateOnlineTimeUye(id) { let pi = gameContext._playerInformation.find((x) => x.id == id); if (pi && pi.onay && pi.loginTime > 0) { let t = new Date().getTime() - pi.loginTime; let uyeStore = gameContext.getUyeStore(); let u = uyeStore[pi.name]; if (u) { u.onlineSure += t; gameContext.setUyeStore(uyeStore); } } } isSkorGiremez() { return ( gameContext.getPlayersByTeam(TeamEnum.RED).length < 3 && gameContext.getPlayersByTeam(TeamEnum.BLUE).length < 3 ); } removeUserExceptAdmins() { let store = gameContext.getUyeStore(); let newStore = {}; for (let i in store) { let u = store[i]; if (u.admin) { newStore[u.name] = new Uye(u); } } gameContext.setUyeStore(newStore); } addIlk5ToSta(name) { if (gameContext.isSkorGiremez()) { return; } let p = gameContext.getPlayerByName(name); if (p == null || !p.onay) { return; } let staStore = gameContext.getIstatistikStore(); let s = staStore[name]; if (s == null) { staStore[name] = new StaInfo(); s = staStore[name]; } s.ilk5++; s.rank += 2; gameContext.setIstatistikStore(staStore); } addIlk3ToSta(name) { if (gameContext.isSkorGiremez()) { return; } let p = gameContext.getPlayerByName(name); if (p == null || !p.onay) { return; } let staStore = gameContext.getIstatistikStore(); let s = staStore[name]; if (s == null) { staStore[name] = new StaInfo(); s = staStore[name]; } s.ilk3++; s.rank += 4; gameContext.setIstatistikStore(staStore); } addMacinAdamiToSta(name) { if (gameContext.isSkorGiremez()) { return; } let p = gameContext.getPlayerByName(name); if (p == null || !p.onay) { return; } let staStore = gameContext.getIstatistikStore(); let s = staStore[name]; if (s == null) { staStore[name] = new StaInfo(); s = staStore[name]; } s.macinAdami++; s.rank += 7; gameContext.setIstatistikStore(staStore); } addGolToSta(name) { if (gameContext.isSkorGiremez()) { return; } let p = gameContext.getPlayerByName(name); if (p == null || !p.onay) { return; } let staStore = gameContext.getIstatistikStore(); let s = staStore[name]; if (s == null) { staStore[name] = new StaInfo(); s = staStore[name]; } s.gol++; s.rank += 3; gameContext.setIstatistikStore(staStore); } addAsistToSta(name) { if (gameContext.isSkorGiremez()) { return; } let p = gameContext.getPlayerByName(name); if (p == null || !p.onay) { return; } let staStore = gameContext.getIstatistikStore(); let s = staStore[name]; if (s == null) { staStore[name] = new StaInfo(); s = staStore[name]; } s.asist++; s.rank += 2; gameContext.setIstatistikStore(staStore); } addKurtarmaToSta(name) { if (gameContext.isSkorGiremez()) { return; } let p = gameContext.getPlayerByName(name); if (p == null || !p.onay) { return; } let staStore = gameContext.getIstatistikStore(); let s = staStore[name]; if (s == null) { staStore[name] = new StaInfo(); s = staStore[name]; } s.kurtarma++; s.rank += 1; gameContext.setIstatistikStore(staStore); } addCSToSta(name) { if (gameContext.isSkorGiremez()) { return; } let p = gameContext.getPlayerByName(name); if (p == null || !p.onay) { return; } let staStore = gameContext.getIstatistikStore(); let s = staStore[name]; if (s == null) { staStore[name] = new StaInfo(); s = staStore[name]; } s.cs++; s.rank += 1; gameContext.setIstatistikStore(staStore); } addDMToSta(name) { if (gameContext.isSkorGiremez()) { return; } let p = gameContext.getPlayerByName(name); if (p == null || !p.onay) { return; } let staStore = gameContext.getIstatistikStore(); let s = staStore[name]; if (s == null) { staStore[name] = new StaInfo(); s = staStore[name]; } s.dm++; s.rank += 1; gameContext.setIstatistikStore(staStore); } addMacToSta(name) { if (gameContext.isSkorGiremez()) { return; } let p = gameContext.getPlayerByName(name); let staStore = gameContext.getIstatistikStore(); if (p == null || !p.onay) { return; } let s = staStore[name]; if (s == null) { staStore[name] = new StaInfo(); s = staStore[name]; } s.mac++; gameContext.setIstatistikStore(staStore); } addGalibiyetToSta(name) { if (gameContext.isSkorGiremez()) { return; } let p = gameContext.getPlayerByName(name); if (p == null || !p.onay) { return; } let staStore = gameContext.getIstatistikStore(); let s = staStore[name]; if (s == null) { staStore[name] = new StaInfo(); s = staStore[name]; } s.galibiyet++; s.mac++; s.rank += 9; gameContext.setIstatistikStore(staStore); } addMaglubiyetToSta(name) { if (gameContext.isSkorGiremez()) { return; } /*let p = gameContext.getPlayerByName(name); if (p == null || !p.onay) { return; }*/ let staStore = gameContext.getIstatistikStore(); let s = staStore[name]; if (s == null) { staStore[name] = new StaInfo(); s = staStore[name]; } s.maglubiyet++; s.mac++; s.rank += -6; gameContext.setIstatistikStore(staStore); } addKKToSta(name) { if (gameContext.isSkorGiremez()) { return; } let p = gameContext.getPlayerByName(name); if (p == null || !p.onay) { return; } let staStore = gameContext.getIstatistikStore(); let s = staStore[name]; if (s == null) { staStore[name] = new StaInfo(); s = staStore[name]; } s.kk++; s.rank += -3; gameContext.setIstatistikStore(staStore); } getIstatistikStore() { let st = localStorage.getItem("hax_rs_sta"); if (st == null) { localStorage.setItem("hax_rs_sta", JSON.stringify({})); } let items = JSON.parse(localStorage.getItem("hax_rs_sta")); for (let i in items) { items[i] = new StaInfo(items[i]); } return items; } setIstatistikStore(obj) { localStorage.setItem("hax_rs_sta", JSON.stringify(obj)); } resetAllIstatistik() { gameContext.setIstatistikStore({}); } resetOnlineSureler() { let store = gameContext.getUyeStore(); for (let i in store) { store[i].onlineSure = 0; } gameContext.setUyeStore(store); } resetMapOylama() { clearTimeout(gameContext.mapOylaTimeout); gameContext.mapOylar = {}; gameContext.enabledMapOyla = false; gameContext.susturmakOylama = false; gameContext.oylamaAcik = false; } mapOyla(p, map) { if ( gameContext.enabledMapOyla && p.team != TeamEnum.SPECTATORS && gameContext.mapOylar[p.id] == null ) { gameContext.mapOylar[p.id] = { map: map }; let mt = stringOfEnum(RsV6MapState, map); room.sendAnnouncement( p.name + " " + mt + " ʜᴀʀɪᴛᴀsɪɴᴀ, ᴏʏ ᴠᴇʀᴅɪ ✔️", null, 0x00ff00, "bold", 2 ); } else { room.sendAnnouncement( p.name + " ʜᴀʀɪᴛᴀ ᴏʏʟᴀᴍᴀ ʏᴇᴛᴋɪɴɪᴢ ʏᴏᴋ ❌", p.id, 0xff0000, "bold", 2 ); } } mapOylamaAc() { gameContext.oylamaAcik = true; gameContext.susturmakOylama = true; gameContext.enabledMapOyla = true; if (gameContext.mapMod == MapMod.POWER) { gameContext.mapOylaTimeout = setTimeout(() => { if ( gameContext.getMapState() == MapState.RSv6 || gameContext.getMapState() == MapState.RSV4 ) { let f = null; if (gameContext.isRsV6Acilsin) { gameContext.isRsv6mi = true; } else { gameContext.isRsv6mi = false; } f = () => { gameContext._extraStopGamefunc = () => {}; gameContext._extraStadiumChangeGamefunc = () => { gameContext._extraStadiumChangeGamefunc = () => {}; gameContext.setRsV6State(RsV6MapState.POWER); room.startGame(); room.sendAnnouncement( "✔️ ᴀᴜᴛᴏ-ᴘᴏᴡᴇʀ ғᴜᴛsᴀʟ ᴀᴄɪʟɪʏᴏʀ", null, 0x00ff00, "bold", 2 ); }; if (gameContext.isRsV6Acilsin) { room.setCustomStadium(SETTINGS.Maps.RsVs6); } else { room.setCustomStadium(SETTINGS.Maps.RsVs4); } }; if (gameContext.isStop) { f(); } else { gameContext._extraStopGamefunc = f; room.stopGame(); } } gameContext.resetMapOylama(); }, 1000); room.sendAnnouncement( "?️ ᴀᴜᴛᴏ-ᴘᴏᴡᴇʀ ғᴜᴛsᴀʟ ᴀᴄɪʟᴀᴄᴀᴋ.", null, 0x00ff00, "bold", 2 ); } else if (gameContext.mapMod == MapMod.SADE) { gameContext.mapOylaTimeout = setTimeout(() => { if ( gameContext.getMapState() == MapState.RSv6 || gameContext.getMapState() == MapState.RSV4 ) { let f = null; if (gameContext.isRsV6Acilsin) { gameContext.isRsv6mi = true; } else { gameContext.isRsv6mi = false; } f = () => { gameContext._extraStopGamefunc = () => {}; gameContext._extraStadiumChangeGamefunc = () => { gameContext._extraStadiumChangeGamefunc = () => {}; gameContext.setRsV6State(RsV6MapState.SADE); room.startGame(); room.sendAnnouncement( "✔️ ᴋʟᴀsɪᴋ ғᴜᴛsᴀʟ ᴀᴄɪʟɪʏᴏʀ.", null, 0x00ff00, "bold", 2 ); }; if (gameContext.isRsV6Acilsin) { room.setCustomStadium(SETTINGS.Maps.RsVs6); } else { room.setCustomStadium(SETTINGS.Maps.RsVs4); } }; if (gameContext.isStop) { f(); } else { gameContext._extraStopGamefunc = f; room.stopGame(); } } gameContext.resetMapOylama(); }, 1000); room.sendAnnouncement( "?️ ᴋʟᴀsɪᴋ ғᴜᴛsᴀʟ ᴀᴄɪʟᴀᴄᴀᴋ.", null, 0x00ff00, "bold", 2 ); } else if (gameContext.mapMod == MapMod.NORMAL) { gameContext.mapOylaTimeout = setTimeout(() => { if ( gameContext.getMapState() == MapState.RSv6 || gameContext.getMapState() == MapState.RSV4 ) { let powerOys = 0; let yayliOys = 0; let sadeOys = 0; for (let i in gameContext.mapOylar) { let oy = gameContext.mapOylar[i]; if (oy.map == RsV6MapState.POWER) { powerOys++; } else if (oy.map == RsV6MapState.YAYLI) { yayliOys++; } else { sadeOys++; } } let sonuc = "Yaylı: " + yayliOys + ", Power: " + powerOys + ", Yaysız: " + sadeOys; let f = null; if (gameContext.isRsV6Acilsin) { gameContext.isRsv6mi = true; } else { gameContext.isRsv6mi = false; } if (powerOys >= yayliOys && powerOys >= sadeOys) { f = () => { gameContext._extraStopGamefunc = () => {}; gameContext._extraStadiumChangeGamefunc = () => { gameContext._extraStadiumChangeGamefunc = () => {}; gameContext.setRsV6State(RsV6MapState.POWER); room.startGame(); room.sendAnnouncement( "?????: ᴘᴏᴡᴇʀ - " + sonuc, null, 0x00ff00, "bold", 2 ); }; if (gameContext.isRsV6Acilsin) { room.setCustomStadium(SETTINGS.Maps.RsVs6); } else { room.setCustomStadium(SETTINGS.Maps.RsVs4); } }; } else if (yayliOys >= powerOys && yayliOys >= sadeOys) { f = () => { gameContext._extraStopGamefunc = () => {}; gameContext._extraStadiumChangeGamefunc = () => { gameContext._extraStadiumChangeGamefunc = () => {}; gameContext.setRsV6State(RsV6MapState.YAYLI); room.startGame(); room.sendAnnouncement( "Sonuç: Yaylı RS - " + sonuc, null, 0x00ff00, "bold", 2 ); }; if (gameContext.isRsV6Acilsin) { room.setCustomStadium(SETTINGS.Maps.RsVs6Yayli); } else { room.setCustomStadium(SETTINGS.Maps.RsVs4Yayli); } }; } else { f = () => { gameContext._extraStopGamefunc = () => {}; gameContext._extraStadiumChangeGamefunc = () => { gameContext._extraStadiumChangeGamefunc = () => {}; gameContext.setRsV6State(RsV6MapState.SADE); room.startGame(); }; if (gameContext.isRsV6Acilsin) { room.setCustomStadium(SETTINGS.Maps.RsVs6); } else { room.setCustomStadium(SETTINGS.Maps.RsVs4); } room.sendAnnouncement( "?????: ᴋʟᴀsɪᴋ - " + sonuc, null, 0x00ff00, "bold", 2 ); }; } if (gameContext.isStop) { f(); } else { gameContext._extraStopGamefunc = f; room.stopGame(); } } gameContext.resetMapOylama(); }, 15000); room.sendAnnouncement( "?️ ʜᴀʀɪᴛᴀ ᴏʏʟᴀᴍᴀsı ʙᴀsʟᴀᴅɪ. █ !????? !???? █ ᴏʏʟᴀᴍᴀ sᴜʀᴇsɪ ?? sᴀɴɪʏᴇ.", null, 0xff73f6, "bold", 2 ); } room.stopGame(); } getKralNick(name) { let sta = gameContext.tempStas; let p = gameContext.getPlayerByName(name); let staByName = sta[name]; if (!p || !p.onay || !staByName) { return name; } let bestRank = true; let bestGk = true; let bestGol = true; let bestAsist = true; let bestCs = true; let bestDm = true; let min = 10; for (let key in sta) { let s = sta[key]; if (staByName.rank < min || staByName.rank < s.rank) { bestRank = false; } if (staByName.kurtarma < min || staByName.kurtarma < s.kurtarma) { bestGk = false; } if (staByName.gol < min || staByName.gol < s.gol) { bestGol = false; } if (staByName.asist < min || staByName.asist < s.asist) { bestAsist = false; } if (staByName.cs < min || staByName.cs < s.cs) { bestCs = false; } if (staByName.dm < min || staByName.dm < s.dm) { bestDm = false; } } let emoji = (bestRank ? gameContext.krallar.rankKrali.emoji : "") + (bestGk ? gameContext.krallar.kurtarisKrali.emoji : "") + (bestGol ? gameContext.krallar.golKrali.emoji : "") + (bestAsist ? gameContext.krallar.asistKrali.emoji : "") + (bestCs ? gameContext.krallar.csKrali.emoji : "") + (bestDm ? gameContext.krallar.dmKrali.emoji : ""); //let emoji = (gameContext.krallar.golKrali.name == name ? gameContext.krallar.golKrali.emoji : "") // + (gameContext.krallar.asistKrali.name == name ? gameContext.krallar.asistKrali.emoji : "") // + (gameContext.krallar.kurtarisKrali.name == name ? gameContext.krallar.kurtarisKrali.emoji : ""); //emoji += emoji == "" ? "" : " "; //return emoji + name; emoji += emoji == "" ? "" : " "; return name + emoji; } sendChatSadeceAdminlerGorur(player, msg) { let s = player.showName() + ": " + msg; gameContext .getPlayers(true) .filter((x) => x.id == player.id || x.admin || x.gizliAdmin) .forEach((p) => { room.sendAnnouncement(s, p.id, 0xffff00, "bold"); }); } sendChatForTeam(str, team) { gameContext .getPlayers(true) .filter((x) => x.team == team || x.admin) .forEach((p) => { room.sendAnnouncement( str, p.id, team == TeamEnum.RED ? 0xff4640 : team == TeamEnum.BLUE ? 0x089cff : 0x808080, "bold" ); }); } isHarfDisc(r) { return ( GetDigitIndexAfterTheComma(r, gameContext.harfDiscRadiusDigitIndex) == gameContext.harfDiscRadiusDigitVal || (GetDigitIndexAfterTheComma(r, gameContext.harfDiscRadiusDigitIndex) == gameContext.harfDiscRadiusDigitVal - 1 && GetDigitIndexAfterTheComma( r, gameContext.harfDiscRadiusDigitIndex + 1 ) == 9) ); } resetKelime() { gameContext.hareketKelimeAnimEnabled = false; if (gameContext.sahaKelimeDiscs) { gameContext.sahaKelimeDiscs.forEach((h) => { room.setDiscProperties(h.id, { color: 0xffffff, radius: gameContext.harfDiscRadius, x: gameContext.harfDiscDisariPos, y: gameContext.harfDiscDisariPos, }); }); } gameContext.sahaKelimeDiscs = null; for (let i = 0; i < room.getDiscCount(); i++) { let disc = room.getDiscProperties(i); if (disc && gameContext.isHarfDisc(disc.radius)) { room.setDiscProperties(i, { color: 0xffffff, radius: gameContext.harfDiscRadius, x: gameContext.harfDiscDisariPos, y: gameContext.harfDiscDisariPos, }); } } } getKelimeWidth(str) { let w = 0; let count = 0; for (let i = 0; i < str.length; i++) { let c = str[i]; let h = gameContext.harfler[c]; if (h) { w += Math.max(...h.map((x) => x.x)); count++; } } w += (count - 1) * gameContext.harfAralik; return w; } updateAnimKelime() { let speed = 0.1; let bol = 5; let maxSpeed = 5; let lowMaxSpeed = 1; let lowSpeedDist = 100; let maxMesafe = 100; if (gameContext.sahaKelimeDiscs) { if (gameContext.sahaKelimeDiscs.filter((x) => x.use).length == 0) { gameContext.resetKelime(); return; } gameContext.sahaKelimeDiscs .filter((x) => x.use) .slice(0, 5) .forEach((x) => { let disc = room.getDiscProperties(x.id); if (disc) { let xs = 0; let ys = 0; if (Math.abs(x.target.x - disc.x) > maxMesafe) { let s = Math.min( Math.abs(x.target.x - disc.x) < lowSpeedDist ? lowMaxSpeed : maxSpeed, Math.abs(x.target.x - disc.x) / bol ); if (x.target.x > disc.x) { xs = s; } else if (x.target.x < disc.x) { xs = -s; } } if (Math.abs(x.target.y - disc.y) > maxMesafe) { let s = Math.min( Math.abs(x.target.y - disc.y) < lowSpeedDist ? lowMaxSpeed : maxSpeed, Math.abs(x.target.y - disc.y) / bol ); if (x.target.y > disc.y) { ys = s; } else if (x.target.y < disc.y) { ys = -s; } } if (xs == 0 && ys == 0) { x.use = false; room.setDiscProperties(x.id, { x: x.target.x, y: x.target.y, xspeed: xs, yspeed: ys, }); } else { room.setDiscProperties(x.id, { xspeed: xs, yspeed: ys }); } } }); } } startAnimKelime(str, scale = 1) { gameContext.resetKelime(); setTimeout(() => { gameContext.hareketKelimeAnimEnabled = true; let discs = []; for (let i = 0; i < room.getDiscCount(); i++) { let disc = room.getDiscProperties(i); if (disc && gameContext.isHarfDisc(disc.radius)) { discs.push({ id: i, target: { x: 0, y: 0 }, use: false, d: disc, blink: 0, blinkEnabled: false, }); } } let index = { i: 0 }; let aralik = 0; str = ToCleanTr(sekilliHarfToNormal(str)).toUpperCase(); str = str.substring(0, Math.min(str.length, 9)); let yaziBolge = (-gameContext.getKelimeWidth(str) * scale) / 2; for (let i = 0; i < str.length; i++) { let c = str[i]; aralik += gameContext.harfAralik * scale + gameContext.calcHarf( index, discs, c, { x: yaziBolge + gameContext.sahaYaziPos.x + aralik + gameContext.harfAralik * scale, y: gameContext.sahaYaziPos.y, }, scale ); } gameContext.sahaKelimeDiscs = discs; //console.log(gameContext.sahaKelimeDiscs); }, 1000); } calcHarf(index, discs, ht, bias, scale = 1) { let h = gameContext.harfler[ht]; if (h == null) { return 0; } let maxX = 0; for (let i = 0; i < h.length; i++) { let d = h[i]; let disc = discs[index.i]; if (disc) { disc.target = { x: bias.x + d.x * scale, y: bias.y + d.y * scale }; disc.use = true; disc.blinkEnabled = true; //console.log(disc); room.setDiscProperties(disc.id, { radius: disc.d.radius * scale, x: gameContext.animSahaYaziStartPos.x, y: gameContext.animSahaYaziStartPos.y, }); if (d.x > maxX) { maxX = d.x; } index.i++; } else { break; } } return maxX * scale; } isRSv6Yayli() { return gameContext.getRsV6State() == RsV6MapState.YAYLI; } isRsPower() { return gameContext.getRsV6State() == RsV6MapState.POWER; } setMevkiSecmeTimeout(p) { if (!gameContext.alfaTest) { if (p.dizilimTimeout) clearTimeout(p.dizilimTimeout); p.dizilimTimeout = setTimeout(() => { if (p.castleIndex == -1) room.kickPlayer(p.id, "Mevki seçmediniz !"); }, 15000); } } isDuruyor(s) { return Math.abs(s) < SETTINGS.Physics.minSpeed; } isYavas(s) { return Math.abs(s) < SETTINGS.Physics.yavasSpeed; } isSutYanma(s) { return Math.abs(s) < 1.2; } isOffside() { return gameContext._ofsaytVurma != 0; } findBolge(x, team) { if (team == TeamEnum.RED) { for (let i = 0; i < gameContext.getBolgeler().length; i++) { if (x <= gameContext.getBolgeler()[i]) { return i; } } } else { for (let i = 0; i < gameContext.getBolgeler().length; i++) { if (x >= -gameContext.getBolgeler()[i]) { return i; } } } return gameContext.getBolgeler().length - 1; } findDefaultBolgeByMevki(no, team) { let nos = [1, 3, 6, 8, 10, 9]; for (let i = 0; i < nos.length; i++) { if (nos[i] == no) { return i; } } return nos.length - 1; } findBolgeByBall(no, team) { var ballPos = room.getBallPosition(); if (!ballPos) { return gameContext.getBolgeler().length - 1; } let result = 0; let ballBolge = gameContext.findBolge(ballPos.x, team); let defaultBolge = gameContext.findDefaultBolgeByMevki(no, team); if (no == 1) { result = ballBolge > 1 ? ballBolge - 1 : ballBolge; } else if (no == 3) { result = ballBolge; } else { result = Math.max(defaultBolge, ballBolge); } return result < 0 ? 0 : result; } updateMevkiCeza() { let ballPos = room.getBallPosition(); if (ballPos && !gameContext.isOutsideStadium(ballPos)) { gameContext.mevkiDongu++; gameContext .getPlayers() .filter((x) => x.team != 0 && !x.cezali && x.position && x.avatar != 0) .forEach((p, i) => { let aBolge = gameContext.findBolgeByBall(p.avatar, p.team); //let bBolge = gameContext.findBolge(ballPos.x, p.team); let pBolge = gameContext.findBolge(p.position.x, p.team); if (pBolge > aBolge) { p.mevkiCeza += (pBolge - aBolge) * (p.mevkiCezaAldi ? 1.5 : 1); p.mevkiCezaAldi = true; } else { p.mevkiCezaAldi = false; } }); } } checkMevkiCeza() { let scores = room.getScores(); if (scores && scores.time >= 60 * gameContext.mevkiTespitCount) { let count = 0; let sum = 0; let max = 0; let maxName = ""; let beta = gameContext.getPlayers().find((x) => x.name == "beta"); let vadmin = gameContext.getPlayers().find((x) => x.name == "vadmin"); gameContext .getPlayers() .filter((x) => x.team != 0 && !x.cezali) .forEach((p, i) => { count++; sum += p.mevkiCeza; if (p.mevkiCeza > max) { max = p.mevkiCeza; maxName = p.name; } if (p.mevkiCeza > gameContext.maxMevkiCeza) { let scores = room.getScores(); if (!scores) { return; } room.sendAnnouncement( p.name + " ? ᴅᴀᴋɪᴋᴀ ᴄᴇᴢᴀʟᴀɴᴅɪʀɪʟᴅɪ (" + parseInt(p.mevkiCeza) + " ᴄᴇᴢᴀ ᴘᴜᴀɴɪ)", null, 0xff0000, "bold", 2 ); let time = scores.time + 60; p.cezali = true; if (p.team == TeamEnum.RED) { room.setPlayerDiscProperties(p.id, { x: -100, y: 700 }); } else if (p.team == TeamEnum.BLUE) { room.setPlayerDiscProperties(p.id, { x: 100, y: 700 }); } p.cezaInterval = setInterval(() => { let t = room.getScores(); if (!t) { return; } if (t.time >= time) { room.setPlayerDiscProperties(p.id, { x: 0, y: 550 }); clearInterval(p.cezaInterval); p.cezali = false; } else { //if (p.team == TeamEnum.RED) { // room.setPlayerDiscProperties(p.id, { x: -300, y: 800 }); //} //else if (p.team == TeamEnum.BLUE) { // room.setPlayerDiscProperties(p.id, { x: 300, y: 800 }); //} } }, 1000); } }); if (beta) { room.sendAnnouncement( "Ortalama mevki ceza puanı: " + parseInt(sum / count), beta.id, 0x00ff00, "bold", 2 ); room.sendAnnouncement( "Mevki döngüsü: " + gameContext.mevkiDongu, beta.id, 0x00ff00, "bold", 2 ); room.sendAnnouncement( "En yüksek mevki ceza: " + max + "(" + maxName + ")", beta.id, 0x00ff00, "bold", 2 ); } if (vadmin) { room.sendAnnouncement( "Ortalama mevki ceza puanı: " + parseInt(sum / count), vadmin.id, 0x00ff00, "bold", 2 ); room.sendAnnouncement( "Mevki döngüsü: " + gameContext.mevkiDongu, vadmin.id, 0x00ff00, "bold", 2 ); room.sendAnnouncement( "En yüksek mevki ceza: " + max + "(" + maxName + ")", vadmin.id, 0x00ff00, "bold", 2 ); } gameContext.mevkiTespitCount++; gameContext.resetMevkiCezas(); gameContext.mevkiDongu = 0; } } resetMevkiCezaById(id) { let p = gameContext.getPlayerById(id); p.mevkiCeza = 0; p.mevkiCezaAldi = false; p.avatarUyari = false; } resetMevkiCezas() { gameContext.getPlayers(true).forEach((p, i) => { gameContext.resetMevkiCezaById(p.id); }); } getTimeText(scoreTime) { let dk = parseInt(scoreTime / 60); let sn = Math.round(scoreTime % 60); let timeText = dk + ":" + (sn < 10 ? "0" + sn : sn); return timeText; } getStadMeasure() { if (this.isRsv6mi) { return SETTINGS.Physics.rsVs6; } else { return SETTINGS.Physics.rsVs4; } } resetDizilim(f, exceptTeam = 0) { if ( f || gameContext.getPlayers().length < (SETTINGS.Game.maxPlayerV6 - 1) * 2 || gameContext.getMapState() != MapState.RS ) { gameContext.getPlayers(true).forEach((p) => { if (exceptTeam != 0 && exceptTeam == p.team) { return; } p.avatar = 0; p.castleIndex = -1; clearTimeout(p.dizilimTimeout); p.dizilimTimeout = null; }); gameContext.mevkilerSecildi = false; } } animPlayerColors(id) { let self = setInterval(() => { let c = getColorBlinkTeam(gameContext.teamBlinkIndex, id); if (c == -1) { gameContext.teamBlinkIndex = 0; c = getColorBlinkTeam(gameContext.teamBlinkIndex, id); } room.setTeamColors(id, gameContext.playerAngle, 0x000912, [c]); gameContext.teamBlinkIndex++; }, 25); //let self = setInterval(() => { // gameContext.playerAngle += 55; // if (id == TeamEnum.BLUE) { // room.setTeamColors(id, gameContext.playerAngle, 0x000912, [0xFFFFFF, 0x060A77]); // } else { // room.setTeamColors(id, gameContext.playerAngle, 0x000912, [0xFFFFFF, 0xCC0E00]); // } //}, 10); setTimeout(() => { clearInterval(self); gameContext.playerAngle = 0; gameContext.teamBlinkIndex = 0; gameContext.setToDefaultPlayerColor(); }, 10000); } checkLastKonumKalede(ballPos, ballSpeed, vuranTeam, deviation) { let lastX = (vuranTeam == TeamEnum.RED ? 1 : -1) * gameContext.getStadMeasure().stadiumWidth; let lastKonum = gameContext.checkLastKonumByX(ballPos, ballSpeed, lastX); if ( ((vuranTeam == TeamEnum.RED && lastKonum.x >= lastX) || (vuranTeam == TeamEnum.BLUE && lastKonum.x <= lastX)) && lastKonum.y >= -(gameContext.getStadMeasure().kaleY + deviation) && lastKonum.y <= gameContext.getStadMeasure().kaleY + deviation ) { return true; } return false; } checkLastKonumByX(ballPos, ballSpeed, lastX) { let nx = getBaseLog( SETTINGS.Physics.ballSurtunmeKatsayisi, SETTINGS.Physics.minSpeed / Math.abs(ballSpeed.x) ); let ny = getBaseLog( SETTINGS.Physics.ballSurtunmeKatsayisi, SETTINGS.Physics.minSpeed / Math.abs(ballSpeed.y) ); let fx = lastX - ballPos.x; let y = 0; if ( Number.isNaN(nx) || nx == Infinity || nx == -Infinity || nx < 1 || gameContext.isDuruyor(ballSpeed.x) || gameContext.isDuruyor(fx) || (ballSpeed.x < 0 && fx > 0) || (ballSpeed.x > 0 && fx < 0) ) { return { x: ballPos.x, y: ballPos.y }; } let n = getBaseLog( SETTINGS.Physics.ballSurtunmeKatsayisi, 1 - ((1 - SETTINGS.Physics.ballSurtunmeKatsayisi) * fx) / ballSpeed.x ) - 1; if (!n || Number.isNaN(n) || n == Infinity || n == -Infinity) { return { x: ballPos.x, y: ballPos.y }; } ny = Math.min(ny, n); if (Number.isNaN(ny) || ny == Infinity || ny == -Infinity || ny < 1) { y = 0; } else { y = (ballSpeed.y * (1 - Math.pow( SETTINGS.Physics.ballSurtunmeKatsayisi, Math.min(ny, n) + 1 ))) / (1 - SETTINGS.Physics.ballSurtunmeKatsayisi); } return { x: lastX, y: ballPos.y + y }; } checkLastBallKonum(ballPos, ballSpeed) { return gameContext.checkLastKonumBase( ballPos, ballSpeed, SETTINGS.Physics.minSpeed, SETTINGS.Physics.ballSurtunmeKatsayisi ); } checkLastPlayerKonum(pPos, pSpeed) { return gameContext.checkLastKonumBase( pPos, pSpeed, SETTINGS.Physics.minSpeed, SETTINGS.Physics.playerSurtunmeKatsayisi ); } checkLastKonumBase(pos, speed, minSpeed, surtunme) { let nx = getBaseLog(surtunme, minSpeed / Math.abs(speed.x)); let x = 0; let y = 0; if (Number.isNaN(nx) || nx == Infinity || nx == -Infinity || nx < 1) { x = 0; } else { x = (speed.x * (1 - Math.pow(surtunme, nx + 1))) / (1 - surtunme); } let ny = getBaseLog(surtunme, minSpeed / Math.abs(speed.y)); if (Number.isNaN(ny) || ny == Infinity || ny == -Infinity || ny < 1) { y = 0; } else { y = (speed.y * (1 - Math.pow(surtunme, ny + 1))) / (1 - surtunme); } return { x: pos.x + x, y: pos.y + y }; } checkBallVsPlayerAyagaPas(ballPos, playerPos, ballSpeed, playerSpeed, log) { let playerR = SETTINGS.Physics.playerRadius; let ballR = gameContext.getStadMeasure().ballRadius; let n = 0; let bp = { x: ballPos.x, y: ballPos.y }; let pp = { x: playerPos.x, y: playerPos.y }; let bs = { x: ballSpeed.x, y: ballSpeed.y }; let ps = { x: playerSpeed.x, y: playerSpeed.y }; let yakinlasti = false; while (true) { bp.x += bs.x; bp.y += bs.y; bs.x *= SETTINGS.Physics.ballSurtunmeKatsayisi; bs.y *= SETTINGS.Physics.ballSurtunmeKatsayisi; if ( CollisionDetection.dist(bp.x, bp.y, pp.x, pp.y) <= SETTINGS.Physics.maxPasKovalamaMesafesi + playerR + ballR ) { yakinlasti = true; let fx = bp.x - pp.x; let fy = bp.y - pp.y; if (fx < 0) { let sabitHiz = ps.x * SETTINGS.Physics.playerSurtunmeKatsayisi; let ivmeliHiz = (ps.x - SETTINGS.Physics.playerIvme) * SETTINGS.Physics.playerSurtunmeKatsayisi; ps.x = Math.abs(fx - ivmeliHiz) < Math.abs(fx - sabitHiz) ? ivmeliHiz : sabitHiz; } else if (fx > 0) { let sabitHiz = ps.x * SETTINGS.Physics.playerSurtunmeKatsayisi; let ivmeliHiz = (ps.x + SETTINGS.Physics.playerIvme) * SETTINGS.Physics.playerSurtunmeKatsayisi; ps.x = Math.abs(fx - ivmeliHiz) < Math.abs(fx - sabitHiz) ? ivmeliHiz : sabitHiz; } if (fy < 0) { let sabitHiz = ps.y * SETTINGS.Physics.playerSurtunmeKatsayisi; let ivmeliHiz = (ps.y - SETTINGS.Physics.playerIvme) * SETTINGS.Physics.playerSurtunmeKatsayisi; ps.y = Math.abs(fy - ivmeliHiz) < Math.abs(fy - sabitHiz) ? ivmeliHiz : sabitHiz; } else if (fy > 0) { let sabitHiz = ps.y * SETTINGS.Physics.playerSurtunmeKatsayisi; let ivmeliHiz = (ps.y + SETTINGS.Physics.playerIvme) * SETTINGS.Physics.playerSurtunmeKatsayisi; ps.y = Math.abs(fy - ivmeliHiz) < Math.abs(fy - sabitHiz) ? ivmeliHiz : sabitHiz; } } else if (yakinlasti) { return false; } else { ps.x = ps.x * SETTINGS.Physics.playerSurtunmeKatsayisi; ps.y = ps.y * SETTINGS.Physics.playerSurtunmeKatsayisi; } pp.x += ps.x; pp.y += ps.y; if (log) { console.log(playerPos); console.log("bp: " + JSON.stringify(bp) + " pp:" + JSON.stringify(pp)); } if ( CollisionDetection.circleCircle( bp, pp, playerR + ballR + SETTINGS.Physics.ayagaPasYakalamaMesafesi ) ) { return true; } if (gameContext.isDuruyor(bs.x) && gameContext.isDuruyor(bs.y)) { return false; } } } checkBallVsPlayerOnunePas(ballPos, playerPos, ballSpeed, playerSpeed) { let playerR = SETTINGS.Physics.playerRadius; let ballR = gameContext.getStadMeasure().ballRadius; let n = 0; let bp = { x: ballPos.x, y: ballPos.y }; let pp = { x: playerPos.x, y: playerPos.y }; let bs = { x: ballSpeed.x, y: ballSpeed.y }; let ps = { x: playerSpeed.x, y: playerSpeed.y }; let ballLastKonum = gameContext.checkLastBallKonum(ballPos, ballSpeed); while (true) { bp.x += bs.x; bp.y += bs.y; bs.x *= SETTINGS.Physics.ballSurtunmeKatsayisi; bs.y *= SETTINGS.Physics.ballSurtunmeKatsayisi; let fx = ballLastKonum.x - pp.x; let fy = ballLastKonum.y - pp.y; if (fx < 0) { let sabitHiz = ps.x * SETTINGS.Physics.playerSurtunmeKatsayisi; let ivmeliHiz = (ps.x - SETTINGS.Physics.playerIvme) * SETTINGS.Physics.playerSurtunmeKatsayisi; ps.x = Math.abs(fx - ivmeliHiz) < Math.abs(fx - sabitHiz) ? ivmeliHiz : sabitHiz; } else if (fx > 0) { let sabitHiz = ps.x * SETTINGS.Physics.playerSurtunmeKatsayisi; let ivmeliHiz = (ps.x + SETTINGS.Physics.playerIvme) * SETTINGS.Physics.playerSurtunmeKatsayisi; ps.x = Math.abs(fx - ivmeliHiz) < Math.abs(fx - sabitHiz) ? ivmeliHiz : sabitHiz; } if (fy < 0) { let sabitHiz = ps.y * SETTINGS.Physics.playerSurtunmeKatsayisi; let ivmeliHiz = (ps.y - SETTINGS.Physics.playerIvme) * SETTINGS.Physics.playerSurtunmeKatsayisi; ps.y = Math.abs(fy - ivmeliHiz) < Math.abs(fy - sabitHiz) ? ivmeliHiz : sabitHiz; } else if (fy > 0) { let sabitHiz = ps.y * SETTINGS.Physics.playerSurtunmeKatsayisi; let ivmeliHiz = (ps.y + SETTINGS.Physics.playerIvme) * SETTINGS.Physics.playerSurtunmeKatsayisi; ps.y = Math.abs(fy - ivmeliHiz) < Math.abs(fy - sabitHiz) ? ivmeliHiz : sabitHiz; } pp.x += ps.x; pp.y += ps.y; if ( CollisionDetection.circleCircle( ballLastKonum, pp, SETTINGS.Physics.onuneAtmaUzaklik ) ) { return true; } if (gameContext.isDuruyor(bs.x) && gameContext.isDuruyor(bs.y)) { return false; } } } checkBallVsPlayerAyagaPasKesin(ballPos, ballSpeed, playerSkeletons) { let playerR = SETTINGS.Physics.playerRadius; let ballR = gameContext.getStadMeasure().ballRadius; let bp = { x: ballPos.x, y: ballPos.y }; let bs = { x: ballSpeed.x, y: ballSpeed.y }; let pasiAlan = null; while (true) { bp.x += bs.x; bp.y += bs.y; bs.x *= SETTINGS.Physics.ballSurtunmeKatsayisi; bs.y *= SETTINGS.Physics.ballSurtunmeKatsayisi; playerSkeletons.forEach((p) => { if (pasiAlan != null) { return; } let pp = p.position; let ps = p.speed; if ( CollisionDetection.dist(bp.x, bp.y, pp.x, pp.y) <= SETTINGS.Physics.maxPasKovalamaMesafesi + playerR + ballR ) { p.yakinlasti = true; let fx = bp.x - pp.x; let fy = bp.y - pp.y; if (fx < 0) { let sabitHiz = ps.x * SETTINGS.Physics.playerSurtunmeKatsayisi; let ivmeliHiz = (ps.x - SETTINGS.Physics.playerIvme) * SETTINGS.Physics.playerSurtunmeKatsayisi; ps.x = Math.abs(fx - ivmeliHiz) < Math.abs(fx - sabitHiz) ? ivmeliHiz : sabitHiz; } else if (fx > 0) { let sabitHiz = ps.x * SETTINGS.Physics.playerSurtunmeKatsayisi; let ivmeliHiz = (ps.x + SETTINGS.Physics.playerIvme) * SETTINGS.Physics.playerSurtunmeKatsayisi; ps.x = Math.abs(fx - ivmeliHiz) < Math.abs(fx - sabitHiz) ? ivmeliHiz : sabitHiz; } if (fy < 0) { let sabitHiz = ps.y * SETTINGS.Physics.playerSurtunmeKatsayisi; let ivmeliHiz = (ps.y - SETTINGS.Physics.playerIvme) * SETTINGS.Physics.playerSurtunmeKatsayisi; ps.y = Math.abs(fy - ivmeliHiz) < Math.abs(fy - sabitHiz) ? ivmeliHiz : sabitHiz; } else if (fy > 0) { let sabitHiz = ps.y * SETTINGS.Physics.playerSurtunmeKatsayisi; let ivmeliHiz = (ps.y + SETTINGS.Physics.playerIvme) * SETTINGS.Physics.playerSurtunmeKatsayisi; ps.y = Math.abs(fy - ivmeliHiz) < Math.abs(fy - sabitHiz) ? ivmeliHiz : sabitHiz; } } else if (p.yakinlasti) { playerSkeletons = playerSkeletons.filter((x) => x.id != p.id); } else { ps.x = ps.x * SETTINGS.Physics.playerSurtunmeKatsayisi; ps.y = ps.y * SETTINGS.Physics.playerSurtunmeKatsayisi; } pp.x += ps.x; pp.y += ps.y; if ( CollisionDetection.circleCircle( bp, pp, playerR + ballR + SETTINGS.Physics.ayagaPasYakalamaMesafesi ) ) { pasiAlan = p; return; } }); if ( pasiAlan != null || (gameContext.isDuruyor(bs.x) && gameContext.isDuruyor(bs.y)) ) { return { alan: pasiAlan, ballPos: bp, ballSpeed: bs }; } } } checkBallVsPlayerOnunePasKesin(ballPos, ballSpeed, playerSkeletons) { let playerR = SETTINGS.Physics.playerRadius; let ballR = gameContext.getStadMeasure().ballRadius; let bp = { x: ballPos.x, y: ballPos.y }; let bs = { x: ballSpeed.x, y: ballSpeed.y }; let ballLastKonum = gameContext.checkLastBallKonum(ballPos, ballSpeed); let pasiAlan = null; while (true) { bp.x += bs.x; bp.y += bs.y; bs.x *= SETTINGS.Physics.ballSurtunmeKatsayisi; bs.y *= SETTINGS.Physics.ballSurtunmeKatsayisi; playerSkeletons.forEach((p) => { if (pasiAlan != null) { return; } let pp = p.position; let ps = p.speed; let fx = ballLastKonum.x - pp.x; let fy = ballLastKonum.y - pp.y; if (fx < 0) { let sabitHiz = ps.x * SETTINGS.Physics.playerSurtunmeKatsayisi; let ivmeliHiz = (ps.x - SETTINGS.Physics.playerIvme) * SETTINGS.Physics.playerSurtunmeKatsayisi; ps.x = Math.abs(fx - ivmeliHiz) < Math.abs(fx - sabitHiz) ? ivmeliHiz : sabitHiz; } else if (fx > 0) { let sabitHiz = ps.x * SETTINGS.Physics.playerSurtunmeKatsayisi; let ivmeliHiz = (ps.x + SETTINGS.Physics.playerIvme) * SETTINGS.Physics.playerSurtunmeKatsayisi; ps.x = Math.abs(fx - ivmeliHiz) < Math.abs(fx - sabitHiz) ? ivmeliHiz : sabitHiz; } if (fy < 0) { let sabitHiz = ps.y * SETTINGS.Physics.playerSurtunmeKatsayisi; let ivmeliHiz = (ps.y - SETTINGS.Physics.playerIvme) * SETTINGS.Physics.playerSurtunmeKatsayisi; ps.y = Math.abs(fy - ivmeliHiz) < Math.abs(fy - sabitHiz) ? ivmeliHiz : sabitHiz; } else if (fy > 0) { let sabitHiz = ps.y * SETTINGS.Physics.playerSurtunmeKatsayisi; let ivmeliHiz = (ps.y + SETTINGS.Physics.playerIvme) * SETTINGS.Physics.playerSurtunmeKatsayisi; ps.y = Math.abs(fy - ivmeliHiz) < Math.abs(fy - sabitHiz) ? ivmeliHiz : sabitHiz; } pp.x += ps.x; pp.y += ps.y; if ( CollisionDetection.circleCircle( ballLastKonum, pp, SETTINGS.Physics.onuneAtmaUzaklik ) ) { pasiAlan = p; return; } }); if ( pasiAlan != null || (gameContext.isDuruyor(bs.x) && gameContext.isDuruyor(bs.y)) ) { return { alan: pasiAlan, ballPos: bp, ballSpeed: bs }; } } } checkTehlikeliAtak(kontrolEden) { let ballDisc = room.getDiscProperties(0); let pDisc = room.getPlayerDiscProperties(kontrolEden.id); let kontrolEdenPos = { x: kontrolEden.position.x, y: kontrolEden.position.y, }; if (pDisc == null || kontrolEdenPos == null || ballDisc == null) { return null; } kontrolEden = { position: kontrolEdenPos, speed: { x: pDisc.xspeed, y: pDisc.yspeed }, team: kontrolEden.team, id: kontrolEden.id, yakinlasti: true, }; let players = gameContext.getPlayers().filter(!x.cezali && x.position); let playerSkeletons = []; players.forEach((p) => { let disc = room.getPlayerDiscProperties(p.id); if (disc) { playerSkeletons.push({ position: { x: p.position.x, y: p.position.y }, speed: { x: disc.xspeed, y: disc.yspeed }, team: p.team, id: p.id, yakinlasti: false, }); } }); let res = null; let onunePas = false; let lastPlayerSkeletons = null; if (kontrolEden) { res = { alan: kontrolEden, ballPos: { x: ballDisc.x, y: ballDisc.y }, ballSpeed: { x: ballDisc.xspeed, y: ballDisc.yspeed }, }; lastPlayerSkeletons = playerSkeletons; } else { if ( (res = gameContext.checkBallVsPlayerAyagaPasKesin( { x: ballDisc.x, y: ballDisc.y }, { x: ballDisc.xspeed, y: ballDisc.yspeed }, (lastPlayerSkeletons = deepClone(playerSkeletons)) )).alan ) { //... } else if ( (res = gameContext.checkBallVsPlayerOnunePasKesin( { x: ballDisc.x, y: ballDisc.y }, { x: ballDisc.xspeed, y: ballDisc.yspeed }, (lastPlayerSkeletons = deepClone(playerSkeletons)) )).alan ) { onunePas = true; } } if ( res.alan && onunePas && ((res.alan.team == TeamEnum.RED && res.ballPos.x < res.alan.position.x) || (res.alan.team == TeamEnum.BLUE && res.ballPos.x > res.alan.position.x)) ) { res.alan = null; } if (res.alan) { let dist = CollisionDetection.dist( res.alan.position.x, res.alan.position.y, ballDisc.x, ballDisc.y ); if ( dist < SETTINGS.Physics.ayagaPasUzaklik || (onunePas && dist < SETTINGS.Physics.onuneAtmaUzaklik) ) { let engel = 0; let kaptirma = false; lastPlayerSkeletons .filter((x) => x.team != res.alan.team) .forEach((p) => { let arkasinda = p.team == 2 ? b.x > p.position.x : b.x < p.position.x; if (!arkasinda) { engel++; } }); if (engel > 1) { let stad = gameContext.getStadMeasure(); while (true) { let notDampX = false; let noDampY = false; if ( (res.alan.team == TeamEnum.RED && res.ballPos.x < stad.cezaSahaCizgiX) || (res.alan.team == TeamEnum.BLUE && res.ballPos.x > stad.cezaSahaCizgiX) ) { res.alan.speed.x = res.alan.speed.x + (res.alan.team == TeamEnum.RED ? 1 : -1) * SETTINGS.Physics.playerIvme; if ( (res.alan.team == TeamEnum.RED && res.alan.speed.x > 0) || (res.alan.team == TeamEnum.BLUE && res.alan.speed.x < 0) ) { let calcSpeed = CollisionDetection.calcPlayerVsBallCollisionResponse( res.alan.speed.x, res.ballSpeed.x ); res.alan.speed.x = calcSpeed.playerVelocity; res.ballSpeed.x = calcSpeed.ballVelocity; notDampX = true; } } else if (Math.abs(res.ballPos.y) > stad.cezaSahaCizgiY) { res.alan.speed.y = res.alan.speed.y + (res.ballPos.y < 0 ? 1 : -1) * SETTINGS.Physics.playerIvme; if ( (res.ballPos.y < 0 && res.alan.speed.x > 0) || (res.ballPos.y > 0 && res.alan.speed.x < 0) ) { let calcSpeed = CollisionDetection.calcPlayerVsBallCollisionResponse( res.alan.speed.y, res.ballSpeed.y ); res.alan.speed.y = calcSpeed.playerSpeed; res.ballSpeed.y = calcSpeed.ballSpeed; notDampY = true; } } else { engel = 0; lastPlayerSkeletons .filter((x) => x.team != res.alan.team) .forEach((p) => { engel += gameContext.isEngelPlayer(p, res.ballPos) ? 1 : 0; }); break; } if (!notDampX) { res.alan.speed.x *= SETTINGS.Physics.playerSurtunmeKatsayisi; res.ballSpeed.x *= SETTINGS.Physics.ballSurtunmeKatsayisi; } if (!notDampY) { res.alan.speed.y *= SETTINGS.Physics.playerSurtunmeKatsayisi; res.ballSpeed.y *= SETTINGS.Physics.ballSurtunmeKatsayisi; } res.alan.position.x += res.alan.speed.x; res.alan.position.y += res.alan.speed.y; res.ballPos.x += res.ballSpeed.x; res.ballPos.y += res.ballSpeed.y; lastPlayerSkeletons .filter((x) => x.team != res.alan.team) .forEach((p) => { let fx = res.ballPos.x - p.position.x; let fy = res.ballPos.y - p.position.y; if (Math.abs(fx) > Math.abs(fy)) { if (fx < 0) { let sabitHiz = p.speed.x * SETTINGS.Physics.playerSurtunmeKatsayisi; let ivmeliHiz = (p.speed.x - SETTINGS.Physics.playerIvme) * SETTINGS.Physics.playerSurtunmeKatsayisi; p.speed.x = Math.abs(fx - ivmeliHiz) < Math.abs(fx - sabitHiz) ? ivmeliHiz : sabitHiz; } else if (fx > 0) { let sabitHiz = p.speed.x * SETTINGS.Physics.playerSurtunmeKatsayisi; let ivmeliHiz = (p.speed.x + SETTINGS.Physics.playerIvme) * SETTINGS.Physics.playerSurtunmeKatsayisi; p.speed.x = Math.abs(fx - ivmeliHiz) < Math.abs(fx - sabitHiz) ? ivmeliHiz : sabitHiz; } } else { if (fy < 0) { let sabitHiz = p.speed.y * SETTINGS.Physics.playerSurtunmeKatsayisi; let ivmeliHiz = (p.speed.y - SETTINGS.Physics.playerIvme) * SETTINGS.Physics.playerSurtunmeKatsayisi; p.speed.y = Math.abs(fy - ivmeliHiz) < Math.abs(fy - sabitHiz) ? ivmeliHiz : sabitHiz; } else if (fy > 0) { let sabitHiz = p.speed.y * SETTINGS.Physics.playerSurtunmeKatsayisi; let ivmeliHiz = (p.speed.y + SETTINGS.Physics.playerIvme) * SETTINGS.Physics.playerSurtunmeKatsayisi; p.speed.y = Math.abs(fy - ivmeliHiz) < Math.abs(fy - sabitHiz) ? ivmeliHiz : sabitHiz; } } p.position.x += p.speed.x; p.position.y += p.speed.y; if ( CollisionDetection.circleCircle( res.ballPos, p.position, SETTINGS.Physics.playerRadius + stad.ballRadius + SETTINGS.Physics.ayagaPasYakalamaMesafesi ) ) { kaptirma = true; } }); if (kaptirma) { break; } } } } if (!kaptirma && engel < 2) { return { state: engel == 0 ? TehlikeliAtakState.BOSKALE : TehlikeliAtakState.KALECIYLEKARSIKARSIYA, team: res.alan.team, }; } } return null; } isEngelPlayer(p, b) { if (!p || !b) { return false; } let stad = gameContext.getStadMeasure(); let kaleX = stad.kornerCizgiX; let kaleY = stad.kaleY; let kx = Math.abs(kaleX - p.position.x) - 50; kx = kx < 0 ? 0 : kx / 1.5; let by = Math.abs(p.position.y - b.y) - 30; by = by < 0 ? 0 : by; let ky = b.y == 0 || Math.abs(b.y) <= kaleY ? 0 : -Math.abs(b.y - (b.y / Math.abs(b.y)) * kaleY); let kpy = p.position.y == 0 || Math.abs(p.position.y) <= kaleY ? 0 : Math.abs( p.position.y - (p.position.y / Math.abs(p.position.y)) * kaleY ); let bx = -Math.abs(b.x - kaleX) / 2; let t = kx + by + ky + kpy + bx; let bpyakinY = SETTINGS.Physics.playerRadius + stad.ballRadius + 27 > Math.abs(p.position.y - b.y); let arkasinda = p.team == TeamEnum.BLUE ? b.x > p.position.x : b.x < p.position.x; return !arkasinda && (bpyakinY || t <= 60); } checkTopNereye(striker, ballPos, playerPos, speed, playerSpeed) { let ballR = gameContext.getStadMeasure().ballRadius; let playerR = SETTINGS.Physics.playerRadius; let otherPlayers = gameContext .getPlayerInformationInTheGame() .filter((x) => x.position && !x.cezali && x.id != striker.id); let goalPos = striker.team == TeamEnum.BLUE ? { x1: -gameContext.getStadMeasure().maxCizgiX, y1: -gameContext.getStadMeasure().kaleY, x2: -gameContext.getStadMeasure().maxCizgiX, y2: gameContext.getStadMeasure().kaleY, } : { x1: gameContext.getStadMeasure().maxCizgiX, y1: -gameContext.getStadMeasure().kaleY, x2: gameContext.getStadMeasure().maxCizgiX, y2: gameContext.getStadMeasure().kaleY, }; // RS v6 ya göre ! let goalPosKendi = striker.team == TeamEnum.RED ? { x1: -gameContext.getStadMeasure().maxCizgiX, y1: -gameContext.getStadMeasure().kaleY, x2: -gameContext.getStadMeasure().maxCizgiX, y2: gameContext.getStadMeasure().kaleY, } : { x1: gameContext.getStadMeasure().maxCizgiX, y1: -gameContext.getStadMeasure().kaleY, x2: gameContext.getStadMeasure().maxCizgiX, y2: gameContext.getStadMeasure().kaleY, }; // RS v6 ya göre ! let wallX = gameContext.getStadMeasure().stadiumWidth; //370; //550 //1164; let wallY = gameContext.getStadMeasure().stadiumHeight; //170; //240 //550; // aim vuran oyuncu start let ang = angle(playerPos.x, playerPos.y, ballPos.x, ballPos.y); let gucIndex = 0; let noktalar = []; let damping = 0.96; let curOtherPlayer = null; let penAreaX = gameContext.getStadMeasure().cezaSahaCizgiX; let penAreaY = gameContext.getStadMeasure().cezaSahaCizgiY; let deviation = SETTINGS.Physics.kaleDeviation; let colOyuncu = false; let guc = { x: speed.x, y: speed.y }; let distXIndex = ballPos.x; let distYIndex = ballPos.y; let colTakim = false; let colRakip = false; let colRakipCezaSahasi = false; let aut = false; let tac = false; let kale = false; let kaleKendi = false; let onunePas = false; let araPas = false; let i = 0; while (true) { distXIndex += guc.x; distYIndex += guc.y; let durdur = false; if ( !colOyuncu && (curOtherPlayer = otherPlayers.find((o) => CollisionDetection.circleCircle( { x: distXIndex, y: distYIndex }, { x: o.position.x, y: o.position.y }, (o.team == striker.team ? SETTINGS.Physics.maxPasAlmaMesafesi : 0) + playerR + ballR ) )) && ((ballPos.x > curOtherPlayer.position.x && speed.x < 0 && !gameContext.isDuruyor(speed.x)) || (ballPos.x < curOtherPlayer.position.x && speed.x > 0 && !gameContext.isDuruyor(speed.x)) || (ballPos.y > curOtherPlayer.position.y && speed.y < 0 && !gameContext.isDuruyor(speed.y)) || (ballPos.y < curOtherPlayer.position.y && speed.y > 0 && !gameContext.isDuruyor(speed.y))) ) { if (curOtherPlayer.team == striker.team) { if ( CollisionDetection.circleCircle( { x: distXIndex, y: distYIndex }, { x: curOtherPlayer.position.x, y: curOtherPlayer.position.y }, playerR + ballR + SETTINGS.Physics.ayagaPasYakalamaMesafesi ) ) { colOyuncu = true; colTakim = true; onunePas = false; otherPlayers = otherPlayers.filter( (x) => x.id != curOtherPlayer.id ); } else { //i++; if ( gameContext.checkBallVsPlayerAyagaPas( ballPos, { x: curOtherPlayer.position.x, y: curOtherPlayer.position.y }, speed, { x: 0, y: 0 }, i < 2 ? false : true ) ) { colOyuncu = true; colTakim = true; onunePas = false; otherPlayers = otherPlayers.filter( (x) => x.id != curOtherPlayer.id ); } else if ( gameContext.checkBallVsPlayerOnunePas( ballPos, { x: curOtherPlayer.position.x, y: curOtherPlayer.position.y }, speed, { x: 0, y: 0 } ) ) { onunePas = true; otherPlayers = otherPlayers.filter( (x) => x.id != curOtherPlayer.id ); } } if ( (colTakim || onunePas) && !gameContext.isYavas(speed.x) && (striker.team == TeamEnum.RED ? 1 : -1) * speed.x > 0 ) { let aradakiRakipler = otherPlayers.filter( (x) => x.team != striker.team && ((striker.team == TeamEnum.RED && x.position.x <= curOtherPlayer.position.x && x.position.x > ballPos.x) || (striker.team == TeamEnum.BLUE && x.position.x >= curOtherPlayer.position.x && x.position.x < ballPos.x)) && Math.abs(x.position.y - curOtherPlayer.position.y) <= SETTINGS.Physics.araPasMesafeY ); if (aradakiRakipler.length > 1) { let yBuyukler = aradakiRakipler.filter( (x) => x.position.y > curOtherPlayer.position.y ); let yKucukler = aradakiRakipler.filter( (x) => x.position.y < curOtherPlayer.position.y ); let yEsitler = aradakiRakipler.filter( (x) => x.position.y == curOtherPlayer.position.y ); if ( yEsitler.length > 0 || (yBuyukler.length > 0 && yKucukler.length > 0) ) { araPas = true; } } else { araPas = false; } } } else { //colOyuncu = true; colRakip = true; if ( ((striker.team == TeamEnum.RED && curOtherPlayer.x > penAreaX) || (striker.team == TeamEnum.BLUE && curOtherPlayer.x < -penAreaX)) && curOtherPlayer.y < Math.abs(penAreaY) ) { colRakipCezaSahasi = true; } } } else if ( CollisionDetection.lineCircle( goalPos.x1, goalPos.y1, goalPos.x2, goalPos.y2, distXIndex, distYIndex, playerR + deviation ) ) { kale = true; durdur = true; guc = 0; } else if ( CollisionDetection.lineCircle( goalPosKendi.x1, goalPosKendi.y1, goalPosKendi.x2, goalPosKendi.y2, distXIndex, distYIndex, playerR + deviation ) ) { kaleKendi = true; durdur = true; guc = 0; } else { if (distXIndex >= wallX || distXIndex <= -wallX) { aut = true; durdur = true; guc = 0; } if (distYIndex >= wallY || distYIndex <= -wallY) { tac = true; durdur = true; guc = 0; } } if (durdur) { noktalar.push({ x: distXIndex, y: distYIndex, }); break; } else if (gameContext.isDuruyor(guc.x) && gameContext.isDuruyor(guc.y)) { noktalar.push({ x: distXIndex, y: distYIndex, }); break; } guc.x *= SETTINGS.Physics.ballSurtunmeKatsayisi; guc.y *= SETTINGS.Physics.ballSurtunmeKatsayisi; } return { colTakim: colTakim, colRakip: colRakip, colRakipCezaSahasi: colRakipCezaSahasi, araPas: araPas, onunePas: onunePas, aut: aut, tac: tac, kale: kale, kaleKendi: kaleKendi, }; } checkStrikerPass(striker, speed) { let stad = gameContext.getStadMeasure(); let ballR = stad.ballRadius; let playerR = SETTINGS.Physics.playerRadius; let deviation = SETTINGS.Physics.kaleDeviation + 100; let ballPos = room.getBallPosition(); if (ballPos == null /*|| Math.abs(ballPos.y) >= stad.tacSutSinir*/) { return { x: speed.x, y: speed.y }; } let guc = { x: speed.x * SETTINGS.Physics.maxShootPower, y: speed.y * SETTINGS.Physics.maxShootPower, }; if ( !gameContext.checkLastKonumKalede(ballPos, guc, striker.team, deviation) ) { return { x: speed.x, y: speed.y }; } let otherPlayers = gameContext .getPlayerInformationInTheGame() .filter((x) => !x.cezali && x.position && x.id != striker.id); //let goalPos = striker.team == TeamEnum.BLUE ? { x1: -1400, y1: -135, x2: -1400, y2: 135 } // : { x1: 1400, y1: -135, x2: 1400, y2: 135 }; // RS v6 ya göre ! let goalPos = striker.team == TeamEnum.BLUE ? { x1: -gameContext.getStadMeasure().maxCizgiX, y1: -gameContext.getStadMeasure().kaleY, x2: -gameContext.getStadMeasure().maxCizgiX, y2: gameContext.getStadMeasure().kaleY, } : { x1: gameContext.getStadMeasure().maxCizgiX, y1: -gameContext.getStadMeasure().kaleY, x2: gameContext.getStadMeasure().maxCizgiX, y2: gameContext.getStadMeasure().kaleY, }; // RS v6 ya göre ! if (striker) { let wallX = SETTINGS.Physics.stadiumWidth; //370; //550 //1164; let wallY = SETTINGS.Physics.stadiumHeight; //170; //240 //550; // aim vuran oyuncu start let ang = angle( striker.position.x, striker.position.y, ballPos.x, ballPos.y ); let normalGuc = { x: speed.x * SETTINGS.Physics.maxShootPower, y: speed.y * SETTINGS.Physics.maxShootPower, }; let noktalar = []; let damping = 0.96; let powerKx = speed.x; let powerKy = speed.y; let curOtherPlayer = null; let penAreaX = SETTINGS.Physics.cezaSahaCizgiX; let penAreaY = SETTINGS.Physics.cezaSahaCizgiY; let distXIndex = ballPos.x; let distYIndex = ballPos.y; while (true) { distXIndex += guc.x; distYIndex += guc.y; //console.log("h: " + guc.x + "," + guc.y + " k: " + distXIndex + "," + distYIndex); let durdur = false; if ( (!gameContext.isDuruyor(normalGuc.x) || !gameContext.isDuruyor(normalGuc.y)) && (curOtherPlayer = otherPlayers.find((o) => CollisionDetection.circleCircle( { x: distXIndex, y: distYIndex }, { x: o.position.x, y: o.position.y }, (o.team == striker.team ? SETTINGS.Physics.maxPasAlmaMesafesi : 0) + playerR + ballR ) )) ) { if (curOtherPlayer.team == striker.team) { if ( CollisionDetection.circleCircle( { x: distXIndex, y: distYIndex }, { x: curOtherPlayer.position.x, y: curOtherPlayer.position.y }, playerR + ballR + SETTINGS.Physics.ayagaPasYakalamaMesafesi ) || (CollisionDetection.circleCircle( gameContext.checkLastBallKonum( { x: distXIndex, y: distYIndex }, normalGuc ), { x: curOtherPlayer.position.x, y: curOtherPlayer.position.y }, SETTINGS.Physics.onuneAtmaUzaklik ) && !gameContext.checkLastKonumKalede( { x: distXIndex, y: distYIndex }, normalGuc, striker.team, 0 )) ) { return { x: speed.x, y: speed.y }; } } } else if ( CollisionDetection.lineCircle( goalPos.x1, goalPos.y1, goalPos.x2, goalPos.y2, distXIndex, distYIndex, playerR + deviation ) ) { powerKx = SETTINGS.Physics.maxShootPower * speed.x; powerKy = SETTINGS.Physics.maxShootPower * speed.y; durdur = true; guc = 0; } else { if (distXIndex >= wallX) { durdur = true; } if (distXIndex <= -wallX) { durdur = true; } if (distYIndex >= wallY) { durdur = true; } if (distYIndex <= -wallY) { durdur = true; } } if (durdur) { noktalar.push({ x: distXIndex, y: distYIndex, }); break; } else if ( gameContext.isDuruyor(guc.x) && gameContext.isDuruyor(guc.y) ) { noktalar.push({ x: distXIndex, y: distYIndex, }); break; } guc.x *= SETTINGS.Physics.ballSurtunmeKatsayisi; guc.y *= SETTINGS.Physics.ballSurtunmeKatsayisi; normalGuc.x *= SETTINGS.Physics.ballSurtunmeKatsayisi; normalGuc.y *= SETTINGS.Physics.ballSurtunmeKatsayisi; } return { x: powerKx, y: powerKy }; } return { x: speed.x, y: speed.y }; } addKazananSeri(team) { if (team == TeamEnum.RED) { gameContext.blueUstUsteKazanma = 0; gameContext.redUstUsteKazanma++; room.sendAnnouncement( "? ??? " + gameContext.redUstUsteKazanma + " ᴍᴀᴄᴛɪʀ ᴋᴀᴢᴀɴɪʏᴏʀ.", null, 0xbd91ff, "bold" ); } else { gameContext.redUstUsteKazanma = 0; gameContext.blueUstUsteKazanma++; room.sendAnnouncement( "? ???? " + gameContext.blueUstUsteKazanma + " ᴍᴀᴄᴛɪʀ ᴋᴀᴢᴀɴɪʏᴏʀ.", null, 0xbd91ff, "bold" ); } } teamVictory(scores, erken = false) { let afks = gameContext.getPlayers(true).filter((x) => x.afk); afks.forEach((p, i) => { p.afkMac++; if (p.afkMac == 2) { room.kickPlayer( p.id, "❌ Uzun süredir afk olduğunuzdan odamızdan atıldınız.", false ); } }); gameContext.currentTeamColor = null; //gameContext.resetDizilim(true); gameContext.resetPlayerActivities(); let redTeam = gameContext.getPlayersByTeam(TeamEnum.RED); let blueTeam = gameContext.getPlayersByTeam(TeamEnum.BLUE); if (gameContext.getMapState() == MapState.RSV4) { for (let i in redTeam) { let item = redTeam[i]; if (scores.red > scores.blue) { gameContext.addGalibiyetToSta(item.name); } else { gameContext.addMaglubiyetToSta(item.name); } } for (let i in blueTeam) { let item = blueTeam[i]; if (scores.red < scores.blue) { gameContext.addGalibiyetToSta(item.name); } else { gameContext.addMaglubiyetToSta(item.name); } } } //room.sendAnnouncement(SETTINGS.Strings.CommandResponse.help); gameContext.lockTeamChange = true; // console.log("-----------------------"); //console.log("teamVictory => oyuncuları dizmeye başla"); //console.log(">game-state:" + gameContext.state()); //console.log(">map-state:" + gameContext.getMapState()); //console.log("-----------------------"); let sp = gameContext.getPlayersByTeam(TeamEnum.SPECTATORS); let ti = 0; let mi = gameContext.getCurrentMaxPlayer(); if (sp.length > 0) { if (scores.red > scores.blue) { let tp = gameContext.getPlayersByTeam(TeamEnum.BLUE); //console.log(JSON.stringify(tp)); tp.forEach((p, i) => { if (erken || p.oynadigiSure > SETTINGS.Game.minAzOynadiSure) { setTimeout(() => { gameContext.takimDegis(p.id, TeamEnum.SPECTATORS); }, 1); } else { mi--; } }); sp.forEach((p, i) => { if (ti < mi) { setTimeout(() => { gameContext.takimDegis(p.id, TeamEnum.BLUE); }, 1); ti++; } }); } else { let tp = gameContext.getPlayersByTeam(TeamEnum.RED); let bp = gameContext.getPlayersByTeam(TeamEnum.BLUE); tp.forEach((p, i) => { if (erken || p.oynadigiSure > SETTINGS.Game.minAzOynadiSure) { setTimeout(() => { gameContext.takimDegis(p.id, TeamEnum.SPECTATORS); }, 1); } else { //setTimeout(() => { // gameContext.takimDegis(p.id, TeamEnum.BLUE); //}, 500); mi--; } }); //bp.forEach((p, i) => { // setTimeout(() => { // gameContext.takimDegis(p.id, TeamEnum.BLUE); // }, 500); //}); sp.forEach((p, i) => { if (ti < mi) { setTimeout(() => { gameContext.takimDegis(p.id, TeamEnum.RED); }, 1); ti++; } }); } } if (gameContext.getMapState() != MapState.Dizilim) { gameContext.oyuncuSecGoster(); } setTimeout(() => { //gameContext.changeState(GameState.MATCHSTARTED); gameContext.puanHesapla(scores); gameContext.lockTeamChange = false; // console.log("-----------------------"); // console.log("teamVictory => MATCHSTARTED = İPTAL"); // console.log(">game-state:" + gameContext.state()); // console.log(">map-state:" + gameContext.getMapState()); // console.log("-----------------------"); if (gameContext.redSecebilir()) { gameContext.secmeListele(TeamEnum.RED); } if (gameContext.blueSecebilir()) { gameContext.secmeListele(TeamEnum.BLUE); } //console.log("match started settimeoutda"); gameContext.resetDizilim( true, scores.red > scores.blue ? TeamEnum.RED : TeamEnum.BLUE ); gameContext.resetToplaOynama(); gameContext.haritaBelirle(); gameContext.tamamla(); gameContext.disla(); }, 300); gameContext.kayipZamanBildirim = false; } oyuncuSonGirdigiZamanDegis(id) { let p = gameContext.getPlayerById(id); let s = room.getScores(); let t = s == null ? 0 : s.time; p.sonGirdigiZaman = t; } oyuncuSurelerHesapla() { gameContext.getPlayersByTeam(TeamEnum.RED).forEach((v, i) => { gameContext.oyuncuSureHesapla(v.id); }); gameContext.getPlayersByTeam(TeamEnum.BLUE).forEach((v, i) => { gameContext.oyuncuSureHesapla(v.id); }); } oyuncuSureHesapla(id) { let p = gameContext.getPlayerById(id); let s = room.getScores(); let t = s == null ? 0 : s.time; p.oynadigiSure += t - p.sonGirdigiZaman; p.sonGirdigiZaman = t; } resetOynananSureler() { gameContext.getPlayers(true).forEach((v, i) => { gameContext.resetOynananSure(v.id); }); } resetOynananSure(id) { let p = gameContext.getPlayerById(id); p.sonGirdigiZaman = 0; p.oynadigiSure = 0; } sendStaDetail(toplamlarByOyuncu, scores) { let sureler = gameContext .getPlayers() .filter((x) => x.team != TeamEnum.SPECTATORS) .map((x) => x.oynadigiSure); let sure = sureler.length == 0 ? 0 : (sureler.reduce((sum, val) => (sum += val)) / sureler.length).toFixed( 5 ); let len = 12; //gameContext.oyuncuSayisiOnStart + gameContext.oyunaSonradanGirenSayisiMacta - gameContext.oyundanSonradanCikanSayisiMacta; let staResArr = []; let time = scores.time != null ? scores.time : "?"; staResArr.push(` ----------------------------------------------------------------------------------------------------------------------------- SKOR ${scores.red} - ${scores.blue} PLAYERS_COUNT ${sureler.length} toplamlarByOyuncu ${Object.keys(toplamlarByOyuncu).length} ${time} ORT_OYNANILAN_SURE ${calcMedian( toplamlarByOyuncu, "OYNANILAN_SURE" )}md ${sure}mn OYUNCU_SAY_BASLANGIC ${gameContext.oyuncuSayisiOnStart} OYUNCU_SAY_BITIS ${len} ${ gameContext.oyuncuSayisiOnStart + gameContext.oyunaSonradanGirenSayisiMacta - gameContext.oyundanSonradanCikanSayisiMacta } OYUNCU_SAY_TOPLAM_GIREN ${gameContext.oyunaSonradanGirenSayisiMacta} OYUNCU_SAY_TOPLAM_CIKAN ${gameContext.oyundanSonradanCikanSayisiMacta} KK ${logSumAndMed(toplamlarByOyuncu, "KK")}md ${calcMean( toplamlarByOyuncu, len, "KK" )}mn GOL ${logSumAndMed(toplamlarByOyuncu, "GOL")}md ${calcMean( toplamlarByOyuncu, len, "GOL" )}mn ASIST ${logSumAndMed(toplamlarByOyuncu, "ASIST")}md ${calcMean( toplamlarByOyuncu, len, "ASIST" )}mn KKYARDIM ${logSumAndMed(toplamlarByOyuncu, "KKYARDIM")}md ${calcMean( toplamlarByOyuncu, len, "KKYARDIM" )}mn GOLKATKI ${logSumAndMed(toplamlarByOyuncu, "GOLKATKI")}md ${calcMean( toplamlarByOyuncu, len, "GOLKATKI" )}mn HATAGOL ${logSumAndMed(toplamlarByOyuncu, "HATAGOL")}md ${calcMean( toplamlarByOyuncu, len, "HATAGOL" )}mn OFSAYT ${logSumAndMed(toplamlarByOyuncu, "OFSAYT")}md ${calcMean( toplamlarByOyuncu, len, "OFSAYT" )}mn DIREK ${logSumAndMed(toplamlarByOyuncu, "DIREK")}md ${calcMean( toplamlarByOyuncu, len, "DIREK" )}mn VURMA ${logSumAndMed(toplamlarByOyuncu, "VURMA")}md ${calcMean( toplamlarByOyuncu, len, "VURMA" )}mn PAS TOPLAM ${logSumAndMed(toplamlarByOyuncu, "PAS", "TOPLAM")}md ${calcMean( toplamlarByOyuncu, len, "PAS", "TOPLAM" )}mn YANPAS ${logSumAndMed(toplamlarByOyuncu, "PAS", "YANPAS")}md ${calcMean( toplamlarByOyuncu, len, "PAS", "YANPAS" )}mn GERIPAS ${logSumAndMed(toplamlarByOyuncu, "PAS", "GERIPAS")}md ${calcMean( toplamlarByOyuncu, len, "PAS", "GERIPAS" )}mn DIKPAS ${logSumAndMed(toplamlarByOyuncu, "PAS", "DIKPAS")}md ${calcMean( toplamlarByOyuncu, len, "PAS", "DIKPAS" )}mn TEKPAS ${logSumAndMed(toplamlarByOyuncu, "PAS", "TEKPAS")}md ${calcMean( toplamlarByOyuncu, len, "PAS", "TEKPAS" )}mn ARAPAS ${logSumAndMed(toplamlarByOyuncu, "PAS", "ARAPAS")}md ${calcMean( toplamlarByOyuncu, len, "PAS", "ARAPAS" )}mn ONUNEPAS ${logSumAndMed(toplamlarByOyuncu, "PAS", "ONUNEPAS")}md ${calcMean( toplamlarByOyuncu, len, "PAS", "ONUNEPAS" )}mn AYAGAPAS ${logSumAndMed(toplamlarByOyuncu, "PAS", "AYAGAPAS")}md ${calcMean( toplamlarByOyuncu, len, "PAS", "AYAGAPAS" )}mn `); staResArr.push(` ISABETLI_TOPLAM ${logSumAndMed( toplamlarByOyuncu, "PAS", "ISABETLI_TOPLAM" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "ISABETLI_TOPLAM")}mn ISABETLI_YANPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "ISABETLI_YANPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "ISABETLI_YANPAS")}mn ISABETLI_GERIPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "ISABETLI_GERIPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "ISABETLI_GERIPAS")}mn ISABETLI_DIKPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "ISABETLI_DIKPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "ISABETLI_DIKPAS")}mn ISABETLI_TEKPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "ISABETLI_TEKPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "ISABETLI_TEKPAS")}mn ISABETLI_ARAPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "ISABETLI_ARAPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "ISABETLI_ARAPAS")}mn ISABETLI_ONUNEPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "ISABETLI_ONUNEPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "ISABETLI_ONUNEPAS")}mn ISABETLI_AYAGAPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "ISABETLI_AYAGAPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "ISABETLI_AYAGAPAS")}mn B3_TOPLAM ${logSumAndMed(toplamlarByOyuncu, "PAS", "B3_TOPLAM")}md ${calcMean( toplamlarByOyuncu, len, "PAS", "B3_TOPLAM" )}mn B3_YANPAS ${logSumAndMed(toplamlarByOyuncu, "PAS", "B3_YANPAS")}md ${calcMean( toplamlarByOyuncu, len, "PAS", "B3_YANPAS" )}mn B3_GERIPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B3_GERIPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B3_GERIPAS")}mn B3_DIKPAS ${logSumAndMed(toplamlarByOyuncu, "PAS", "B3_DIKPAS")}md ${calcMean( toplamlarByOyuncu, len, "PAS", "B3_DIKPAS" )}mn B3_TEKPAS ${logSumAndMed(toplamlarByOyuncu, "PAS", "B3_TEKPAS")}md ${calcMean( toplamlarByOyuncu, len, "PAS", "B3_TEKPAS" )}mn B3_ARAPAS ${logSumAndMed(toplamlarByOyuncu, "PAS", "B3_ARAPAS")}md ${calcMean( toplamlarByOyuncu, len, "PAS", "B3_ARAPAS" )}mn B3_ONUNEPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B3_ONUNEPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B3_ONUNEPAS")}mn B3_AYAGAPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B3_AYAGAPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B3_AYAGAPAS")}mn `); staResArr.push(` B3_ISABETLI_TOPLAM ${logSumAndMed( toplamlarByOyuncu, "PAS", "B3_ISABETLI_TOPLAM" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B3_ISABETLI_TOPLAM")}mn B3_ISABETLI_YANPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B3_ISABETLI_YANPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B3_ISABETLI_YANPAS")}mn B3_ISABETLI_GERIPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B3_ISABETLI_GERIPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B3_ISABETLI_GERIPAS")}mn B3_ISABETLI_DIKPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B3_ISABETLI_DIKPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B3_ISABETLI_DIKPAS")}mn B3_ISABETLI_TEKPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B3_ISABETLI_TEKPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B3_ISABETLI_TEKPAS")}mn B3_ISABETLI_ARAPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B3_ISABETLI_ARAPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B3_ISABETLI_ARAPAS")}mn B3_ISABETLI_ONUNEPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B3_ISABETLI_ONUNEPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B3_ISABETLI_ONUNEPAS")}mn B3_ISABETLI_AYAGAPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B3_ISABETLI_AYAGAPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B3_ISABETLI_AYAGAPAS")}mn B2_TOPLAM ${logSumAndMed(toplamlarByOyuncu, "PAS", "B2_TOPLAM")}md ${calcMean( toplamlarByOyuncu, len, "PAS", "B2_TOPLAM" )}mn B2_YANPAS ${logSumAndMed(toplamlarByOyuncu, "PAS", "B2_YANPAS")}md ${calcMean( toplamlarByOyuncu, len, "PAS", "B2_YANPAS" )}mn B2_GERIPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B2_GERIPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B2_GERIPAS")}mn B2_DIKPAS ${logSumAndMed(toplamlarByOyuncu, "PAS", "B2_DIKPAS")}md ${calcMean( toplamlarByOyuncu, len, "PAS", "B2_DIKPAS" )}mn B2_TEKPAS ${logSumAndMed(toplamlarByOyuncu, "PAS", "B2_TEKPAS")}md ${calcMean( toplamlarByOyuncu, len, "PAS", "B2_TEKPAS" )}mn B2_ARAPAS ${logSumAndMed(toplamlarByOyuncu, "PAS", "B2_ARAPAS")}md ${calcMean( toplamlarByOyuncu, len, "PAS", "B2_ARAPAS" )}mn B2_ONUNEPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B2_ONUNEPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B2_ONUNEPAS")}mn B2_AYAGAPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B2_AYAGAPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B2_AYAGAPAS")}mn `); staResArr.push(` B2_ISABETLI_TOPLAM ${logSumAndMed( toplamlarByOyuncu, "PAS", "B2_ISABETLI_TOPLAM" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B2_ISABETLI_TOPLAM")}mn B2_ISABETLI_YANPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B2_ISABETLI_YANPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B2_ISABETLI_YANPAS")}mn B2_ISABETLI_GERIPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B2_ISABETLI_GERIPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B2_ISABETLI_GERIPAS")}mn B2_ISABETLI_DIKPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B2_ISABETLI_DIKPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B2_ISABETLI_DIKPAS")}mn B2_ISABETLI_TEKPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B2_ISABETLI_TEKPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B2_ISABETLI_TEKPAS")}mn B2_ISABETLI_ARAPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B2_ISABETLI_ARAPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B2_ISABETLI_ARAPAS")}mn B2_ISABETLI_ONUNEPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B2_ISABETLI_ONUNEPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B2_ISABETLI_ONUNEPAS")}mn B2_ISABETLI_AYAGAPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B2_ISABETLI_AYAGAPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B2_ISABETLI_AYAGAPAS")}mn B1_TOPLAM ${logSumAndMed(toplamlarByOyuncu, "PAS", "B1_TOPLAM")}md ${calcMean( toplamlarByOyuncu, len, "PAS", "B1_TOPLAM" )}mn B1_YANPAS ${logSumAndMed(toplamlarByOyuncu, "PAS", "B1_YANPAS")}md ${calcMean( toplamlarByOyuncu, len, "PAS", "B1_YANPAS" )}mn B1_GERIPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B1_GERIPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B1_GERIPAS")}mn B1_DIKPAS ${logSumAndMed(toplamlarByOyuncu, "PAS", "B1_DIKPAS")}md ${calcMean( toplamlarByOyuncu, len, "PAS", "B1_DIKPAS" )}mn B1_TEKPAS ${logSumAndMed(toplamlarByOyuncu, "PAS", "B1_TEKPAS")}md ${calcMean( toplamlarByOyuncu, len, "PAS", "B1_TEKPAS" )}mn B1_ARAPAS ${logSumAndMed(toplamlarByOyuncu, "PAS", "B1_ARAPAS")}md ${calcMean( toplamlarByOyuncu, len, "PAS", "B1_ARAPAS" )}mn B1_ONUNEPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B1_ONUNEPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B1_ONUNEPAS")}mn B1_AYAGAPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B1_AYAGAPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B1_AYAGAPAS")}mn `); staResArr.push(` B1_ISABETLI_TOPLAM ${logSumAndMed( toplamlarByOyuncu, "PAS", "B1_ISABETLI_TOPLAM" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B1_ISABETLI_TOPLAM")}mn B1_ISABETLI_YANPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B1_ISABETLI_YANPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B1_ISABETLI_YANPAS")}mn B1_ISABETLI_GERIPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B1_ISABETLI_GERIPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B1_ISABETLI_GERIPAS")}mn B1_ISABETLI_DIKPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B1_ISABETLI_DIKPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B1_ISABETLI_DIKPAS")}mn B1_ISABETLI_TEKPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B1_ISABETLI_TEKPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B1_ISABETLI_TEKPAS")}mn B1_ISABETLI_ARAPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B1_ISABETLI_ARAPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B1_ISABETLI_ARAPAS")}mn B1_ISABETLI_ONUNEPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B1_ISABETLI_ONUNEPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B1_ISABETLI_ONUNEPAS")}mn B1_ISABETLI_AYAGAPAS ${logSumAndMed( toplamlarByOyuncu, "PAS", "B1_ISABETLI_AYAGAPAS" )}md ${calcMean(toplamlarByOyuncu, len, "PAS", "B1_ISABETLI_AYAGAPAS")}mn SUT TOPLAM ${logSumAndMed(toplamlarByOyuncu, "SUT", "TOPLAM")}md ${calcMean( toplamlarByOyuncu, len, "SUT", "TOPLAM" )}mn ISABETLI_TOPLAM ${logSumAndMed( toplamlarByOyuncu, "SUT", "ISABETLI_TOPLAM" )}md ${calcMean(toplamlarByOyuncu, len, "SUT", "ISABETLI_TOPLAM")}mn B3_TOPLAM ${logSumAndMed(toplamlarByOyuncu, "SUT", "B3_TOPLAM")}md ${calcMean( toplamlarByOyuncu, len, "SUT", "B3_TOPLAM" )}mn B3_ISABETLI_TOPLAM ${logSumAndMed( toplamlarByOyuncu, "SUT", "B3_ISABETLI_TOPLAM" )}md ${calcMean(toplamlarByOyuncu, len, "SUT", "B3_ISABETLI_TOPLAM")}mn B2_TOPLAM ${logSumAndMed(toplamlarByOyuncu, "SUT", "B2_TOPLAM")}md ${calcMean( toplamlarByOyuncu, len, "SUT", "B2_TOPLAM" )}mn B2_ISABETLI_TOPLAM ${logSumAndMed( toplamlarByOyuncu, "SUT", "B2_ISABETLI_TOPLAM" )}md ${calcMean(toplamlarByOyuncu, len, "SUT", "B2_ISABETLI_TOPLAM")}mn B1_TOPLAM ${logSumAndMed(toplamlarByOyuncu, "SUT", "B1_TOPLAM")}md ${calcMean( toplamlarByOyuncu, len, "SUT", "B1_TOPLAM" )}mn B1_ISABETLI_TOPLAM ${logSumAndMed( toplamlarByOyuncu, "SUT", "B1_ISABETLI_TOPLAM" )}md ${calcMean(toplamlarByOyuncu, len, "SUT", "B1_ISABETLI_TOPLAM")}mn `); staResArr.push(`KURTARMA OK_TOPLAM ${logSumAndMed( toplamlarByOyuncu, "KURTARMA", "OK_TOPLAM" )}md ${calcMean(toplamlarByOyuncu, len, "KURTARMA", "OK_TOPLAM")}mn OK_KALEYEDOGRU ${logSumAndMed( toplamlarByOyuncu, "KURTARMA", "OK_KALEYEDOGRU" )}md ${calcMean(toplamlarByOyuncu, len, "KURTARMA", "OK_KALEYEDOGRU")}mn OK_SERT ${logSumAndMed(toplamlarByOyuncu, "KURTARMA", "OK_SERT")}md ${calcMean( toplamlarByOyuncu, len, "KURTARMA", "OK_SERT" )}mn OK_SERT_KALEYEDOGRU ${logSumAndMed( toplamlarByOyuncu, "KURTARMA", "OK_SERT_KALEYEDOGRU" )}md ${calcMean(toplamlarByOyuncu, len, "KURTARMA", "OK_SERT_KALEYEDOGRU")}mn TRY_TOPLAM ${logSumAndMed( toplamlarByOyuncu, "KURTARMA", "TRY_TOPLAM" )}md ${calcMean(toplamlarByOyuncu, len, "KURTARMA", "TRY_TOPLAM")}mn TRY_KALEYEDOGRU ${logSumAndMed( toplamlarByOyuncu, "KURTARMA", "TRY_KALEYEDOGRU" )}md ${calcMean(toplamlarByOyuncu, len, "KURTARMA", "TRY_KALEYEDOGRU")}mn TRY_SERT ${logSumAndMed( toplamlarByOyuncu, "KURTARMA", "TRY_SERT" )}md ${calcMean(toplamlarByOyuncu, len, "KURTARMA", "TRY_SERT")}mn TRY_SERT_KALEYEDOGRU ${logSumAndMed( toplamlarByOyuncu, "KURTARMA", "TRY_SERT_KALEYEDOGRU" )}md ${calcMean( toplamlarByOyuncu, len, "KURTARMA", "TRY_SERT_KALEYEDOGRU" )}mn MUDAHALE TOPLAM ${logSumAndMed(toplamlarByOyuncu, "MUDAHALE", "TOPLAM")}md ${calcMean( toplamlarByOyuncu, len, "MUDAHALE", "TOPLAM" )}mn TERSVURUS ${logSumAndMed( toplamlarByOyuncu, "MUDAHALE", "TERSVURUS" )}md ${calcMean(toplamlarByOyuncu, len, "MUDAHALE", "TERSVURUS")}mn KESME ${logSumAndMed(toplamlarByOyuncu, "MUDAHALE", "KESME")}md ${calcMean( toplamlarByOyuncu, len, "MUDAHALE", "KESME" )}mn UZAKLASTIRMA ${logSumAndMed( toplamlarByOyuncu, "MUDAHALE", "UZAKLASTIRMA" )}md ${calcMean(toplamlarByOyuncu, len, "MUDAHALE", "UZAKLASTIRMA")}mn B3_TOPLAM ${logSumAndMed( toplamlarByOyuncu, "MUDAHALE", "B3_TOPLAM" )}md ${calcMean(toplamlarByOyuncu, len, "MUDAHALE", "B3_TOPLAM")}mn B3_TERSVURUS ${logSumAndMed( toplamlarByOyuncu, "MUDAHALE", "B3_TERSVURUS" )}md ${calcMean(toplamlarByOyuncu, len, "MUDAHALE", "B3_TERSVURUS")}mn B3_KESME ${logSumAndMed( toplamlarByOyuncu, "MUDAHALE", "B3_KESME" )}md ${calcMean(toplamlarByOyuncu, len, "MUDAHALE", "B3_KESME")}mn B3_UZAKLASTIRMA ${logSumAndMed( toplamlarByOyuncu, "MUDAHALE", "B3_UZAKLASTIRMA" )}md ${calcMean(toplamlarByOyuncu, len, "MUDAHALE", "B3_UZAKLASTIRMA")}mn `); staResArr.push(` B2_TOPLAM ${logSumAndMed( toplamlarByOyuncu, "MUDAHALE", "B2_TOPLAM" )}md ${calcMean(toplamlarByOyuncu, len, "MUDAHALE", "B2_TOPLAM")}mn B2_TERSVURUS ${logSumAndMed( toplamlarByOyuncu, "MUDAHALE", "B2_TERSVURUS" )}md ${calcMean(toplamlarByOyuncu, len, "MUDAHALE", "B2_TERSVURUS")}mn B2_KESME ${logSumAndMed( toplamlarByOyuncu, "MUDAHALE", "B2_KESME" )}md ${calcMean(toplamlarByOyuncu, len, "MUDAHALE", "B2_KESME")}mn B2_UZAKLASTIRMA ${logSumAndMed( toplamlarByOyuncu, "MUDAHALE", "B2_UZAKLASTIRMA" )}md ${calcMean(toplamlarByOyuncu, len, "MUDAHALE", "B2_UZAKLASTIRMA")}mn B1_TOPLAM ${logSumAndMed( toplamlarByOyuncu, "MUDAHALE", "B1_TOPLAM" )}md ${calcMean(toplamlarByOyuncu, len, "MUDAHALE", "B1_TOPLAM")}mn B1_TERSVURUS ${logSumAndMed( toplamlarByOyuncu, "MUDAHALE", "B1_TERSVURUS" )}md ${calcMean(toplamlarByOyuncu, len, "MUDAHALE", "B1_TERSVURUS")}mn B1_KESME ${logSumAndMed( toplamlarByOyuncu, "MUDAHALE", "B1_KESME" )}md ${calcMean(toplamlarByOyuncu, len, "MUDAHALE", "B1_KESME")}mn B1_UZAKLASTIRMA ${logSumAndMed( toplamlarByOyuncu, "MUDAHALE", "B1_UZAKLASTIRMA" )}md ${calcMean(toplamlarByOyuncu, len, "MUDAHALE", "B1_UZAKLASTIRMA")}mn TOP_KAPMA TOPLAM ${logSumAndMed(toplamlarByOyuncu, "TOP_KAPMA", "TOPLAM")}md ${calcMean( toplamlarByOyuncu, len, "TOP_KAPMA", "TOPLAM" )}mn B3_TOPLAM ${logSumAndMed( toplamlarByOyuncu, "TOP_KAPMA", "B3_TOPLAM" )}md ${calcMean(toplamlarByOyuncu, len, "TOP_KAPMA", "B3_TOPLAM")}mn B2_TOPLAM ${logSumAndMed( toplamlarByOyuncu, "TOP_KAPMA", "B2_TOPLAM" )}md ${calcMean(toplamlarByOyuncu, len, "TOP_KAPMA", "B2_TOPLAM")}mn B1_TOPLAM ${logSumAndMed( toplamlarByOyuncu, "TOP_KAPMA", "B1_TOPLAM" )}md ${calcMean(toplamlarByOyuncu, len, "TOP_KAPMA", "B1_TOPLAM")}mn TOP_KAYBI TOPLAM ${logSumAndMed(toplamlarByOyuncu, "TOP_KAYBI", "TOPLAM")}md ${calcMean( toplamlarByOyuncu, len, "TOP_KAYBI", "TOPLAM" )}mn B3_TOPLAM ${logSumAndMed( toplamlarByOyuncu, "TOP_KAYBI", "B3_TOPLAM" )}md ${calcMean(toplamlarByOyuncu, len, "TOP_KAYBI", "B3_TOPLAM")}mn B2_TOPLAM ${logSumAndMed( toplamlarByOyuncu, "TOP_KAYBI", "B2_TOPLAM" )}md ${calcMean(toplamlarByOyuncu, len, "TOP_KAYBI", "B2_TOPLAM")}mn B1_TOPLAM ${logSumAndMed( toplamlarByOyuncu, "TOP_KAYBI", "B1_TOPLAM" )}md ${calcMean(toplamlarByOyuncu, len, "TOP_KAYBI", "B1_TOPLAM")}mn ------------------------------------------------------------------------------------------------------------------------------------------------ `); sendMacinAdamiDiscord(staResArr); } puanHesapla(scores) { macCount++; let rys = ( (100 * gameContext.redBolgeOynandi) / (gameContext.redBolgeOynandi + gameContext.blueBolgeOynandi) ).toFixed(2); let bys = ( (100 * gameContext.blueBolgeOynandi) / (gameContext.redBolgeOynandi + gameContext.blueBolgeOynandi) ).toFixed(2); let rto = ( (100 * gameContext.redToplaOynama) / (gameContext.redToplaOynama + gameContext.blueToplaOynama) ).toFixed(2); let bto = ( (100 * gameContext.blueToplaOynama) / (gameContext.redToplaOynama + gameContext.blueToplaOynama) ).toFixed(2); let redIsabetliPas = 0, blueIsabetliPas = 0, redPas = 0, bluePas = 0; let redKurtarma = 0, blueKurtarma = 0; let redIsabetliSut = 0, blueIsabetliSut = 0, redSut = 0, blueSut = 0; let redOrta = 0, blueOrta = 0; let toplamlarByOyuncu = {}; gameContext.temaslar.forEach((t) => { // maç istatistik ortalamaları let p = gameContext.getPlayerById(t.playerId); if (toplamlarByOyuncu[t.playerId.toString()] == null) { toplamlarByOyuncu[t.playerId.toString()] = { NAME: p == null ? null : p.name, POINT: 0, ATTACK: 0, DEFENSE: 0, OYNANILAN_SURE: p == null ? 0 : p.oynadigiSure, PAS: { TOPLAM: 0, YANPAS: 0, GERIPAS: 0, DIKPAS: 0, TEKPAS: 0, ARAPAS: 0, ONUNEPAS: 0, AYAGAPAS: 0, ISABETLI_TOPLAM: 0, ISABETLI_YANPAS: 0, ISABETLI_GERIPAS: 0, ISABETLI_DIKPAS: 0, ISABETLI_TEKPAS: 0, ISABETLI_ARAPAS: 0, ISABETLI_ONUNEPAS: 0, ISABETLI_AYAGAPAS: 0, B3_TOPLAM: 0, B3_YANPAS: 0, B3_GERIPAS: 0, B3_DIKPAS: 0, B3_TEKPAS: 0, B3_ARAPAS: 0, B3_ONUNEPAS: 0, B3_AYAGAPAS: 0, B3_ISABETLI_TOPLAM: 0, B3_ISABETLI_YANPAS: 0, B3_ISABETLI_GERIPAS: 0, B3_ISABETLI_DIKPAS: 0, B3_ISABETLI_TEKPAS: 0, B3_ISABETLI_ARAPAS: 0, B3_ISABETLI_ONUNEPAS: 0, B3_ISABETLI_AYAGAPAS: 0, B2_TOPLAM: 0, B2_YANPAS: 0, B2_GERIPAS: 0, B2_DIKPAS: 0, B2_TEKPAS: 0, B2_ARAPAS: 0, B2_ONUNEPAS: 0, B2_AYAGAPAS: 0, B2_ISABETLI_TOPLAM: 0, B2_ISABETLI_YANPAS: 0, B2_ISABETLI_GERIPAS: 0, B2_ISABETLI_DIKPAS: 0, B2_ISABETLI_TEKPAS: 0, B2_ISABETLI_ARAPAS: 0, B2_ISABETLI_ONUNEPAS: 0, B2_ISABETLI_AYAGAPAS: 0, B1_TOPLAM: 0, B1_YANPAS: 0, B1_GERIPAS: 0, B1_DIKPAS: 0, B1_TEKPAS: 0, B1_ARAPAS: 0, B1_ONUNEPAS: 0, B1_AYAGAPAS: 0, B1_ISABETLI_TOPLAM: 0, B1_ISABETLI_YANPAS: 0, B1_ISABETLI_GERIPAS: 0, B1_ISABETLI_DIKPAS: 0, B1_ISABETLI_TEKPAS: 0, B1_ISABETLI_ARAPAS: 0, B1_ISABETLI_ONUNEPAS: 0, B1_ISABETLI_AYAGAPAS: 0, }, SUT: { TOPLAM: 0, ISABETLI_TOPLAM: 0, B3_TOPLAM: 0, B3_ISABETLI_TOPLAM: 0, B2_TOPLAM: 0, B2_ISABETLI_TOPLAM: 0, B1_TOPLAM: 0, B1_ISABETLI_TOPLAM: 0, }, KURTARMA: { OK_TOPLAM: 0, OK_KALEYEDOGRU: 0, OK_SERT: 0, OK_SERT_KALEYEDOGRU: 0, TRY_TOPLAM: 0, TRY_KALEYEDOGRU: 0, TRY_SERT: 0, TRY_SERT_KALEYEDOGRU: 0, }, MUDAHALE: { TOPLAM: 0, TERSVURUS: 0, KESME: 0, UZAKLASTIRMA: 0, B3_TOPLAM: 0, B3_TERSVURUS: 0, B3_KESME: 0, B3_UZAKLASTIRMA: 0, B2_TOPLAM: 0, B2_TERSVURUS: 0, B2_KESME: 0, B2_UZAKLASTIRMA: 0, B1_TOPLAM: 0, B1_TERSVURUS: 0, B1_KESME: 0, B1_UZAKLASTIRMA: 0, }, TOP_KAPMA: { TOPLAM: 0, B1_TOPLAM: 0, B2_TOPLAM: 0, B3_TOPLAM: 0, }, TOP_KAYBI: { TOPLAM: 0, B1_TOPLAM: 0, B2_TOPLAM: 0, B3_TOPLAM: 0, }, KK: 0, GOL: 0, ASIST: 0, KKYARDIM: 0, GOLKATKI: 0, HATAGOL: 0, OFSAYT: 0, DIREK: 0, VURMA: 0, }; } let s = toplamlarByOyuncu[t.playerId.toString()]; let bolge = t.bolge == TemasBolgeEnum.BIRINCI ? "B1_" : t.bolge == TemasBolgeEnum.IKINCI ? "B2_" : "B3_"; if (t.kk) { s.KK++; } if (t.vurma) { s.VURMA++; } if (t.ofsayt) { s.OFSAYT++; } if (t.direk) { s.DIREK++; } if (t.gol) { s.GOL++; } else if (t.hataGol) { s.HATAGOL++; } else if (t.asist) { s.ASIST++; } else if (t.kkYardim) { s.KKYARDIM++; } if (t.golKatki) { s.GOLKATKI++; } if (t.topKazanma) { s.TOP_KAPMA["TOPLAM"]++; s.TOP_KAPMA[bolge + "TOPLAM"]++; } if (t.topKaybi) { s.TOP_KAYBI["TOPLAM"]++; s.TOP_KAYBI[bolge + "TOPLAM"]++; } if (t.tip == TemasTipiEnum.PAS) { let sp = s.PAS; sp["TOPLAM"]++; sp[bolge + "TOPLAM"]++; if (!t.topKaybi) { sp["ISABETLI_TOPLAM"]++; sp[bolge + "ISABETLI_TOPLAM"]++; } if (t.pas.tip1 == PasTipi1Enum.DIKPAS) { sp["DIKPAS"]++; sp[bolge + "DIKPAS"]++; if (!t.topKaybi) { sp["ISABETLI_DIKPAS"]++; sp[bolge + "ISABETLI_DIKPAS"]++; } } else if (t.pas.tip1 == PasTipi1Enum.GERIPAS) { sp["GERIPAS"]++; sp[bolge + "GERIPAS"]++; if (!t.topKaybi) { sp["ISABETLI_GERIPAS"]++; sp[bolge + "ISABETLI_GERIPAS"]++; } } else if (t.pas.tip1 == PasTipi1Enum.YANPAS) { sp["YANPAS"]++; sp[bolge + "YANPAS"]++; if (!t.topKaybi) { sp["ISABETLI_YANPAS"]++; sp[bolge + "ISABETLI_YANPAS"]++; } } if (t.pas.tip2 == PasTipi2Enum.TEKPAS) { sp["TEKPAS"]++; sp[bolge + "TEKPAS"]++; if (!t.topKaybi) { sp["ISABETLI_TEKPAS"]++; sp[bolge + "ISABETLI_TEKPAS"]++; } } if (t.pas.tip3 == PasTipi3Enum.ARAPAS) { sp["ARAPAS"]++; sp[bolge + "ARAPAS"]++; if (!t.topKaybi) { sp["ISABETLI_ARAPAS"]++; sp[bolge + "ISABETLI_ARAPAS"]++; } } else if (t.pas.tip4 == PasTipi3Enum.AYAGAPAS) { sp["AYAGAPAS"]++; sp[bolge + "AYAGAPAS"]++; if (!t.topKaybi) { sp["ISABETLI_AYAGAPAS"]++; sp[bolge + "ISABETLI_AYAGAPAS"]++; } } } else if (t.tip == TemasTipiEnum.SUT) { let ss = s.SUT; ss["TOPLAM"]++; ss[bolge + "TOPLAM"]++; if (t.sut.sutTipi == SutTipiEnum.ISABETLI) { ss["ISABETLI_TOPLAM"]++; ss[bolge + "ISABETLI_TOPLAM"]++; } } else if (t.tip == TemasTipiEnum.KURTARMA) { let sk = s.KURTARMA; if (t.kurtarma.tip == KurtarmaTipiEnum.BASARILI) { sk["OK_TOPLAM"]++; if (t.kurtarma.kaleyeDogru && t.kurtarma.sert) { sk["OK_SERT_KALEYEDOGRU"]++; } else if (t.kurtarma.kaleyeDogru) { sk["OK_KALEYEDOGRU"]++; } else if (t.kurtarma.sert) { sk["OK_SERT"]++; } } else if (t.kurtarma.tip == KurtarmaTipiEnum.BASLANGIC) { sk["TRY_TOPLAM"]++; if (t.kurtarma.kaleyeDogru && t.kurtarma.sert) { sk["TRY_SERT_KALEYEDOGRU"]++; } else if (t.kurtarma.kaleyeDogru) { sk["TRY_KALEYEDOGRU"]++; } else if (t.kurtarma.sert) { sk["TRY_SERT"]++; } } } else if (t.tip == TemasTipiEnum.MUDAHALE) { let sm = s.MUDAHALE; sm["TOPLAM"]++; sm[bolge + "TOPLAM"]++; if (t.mudahale.tersVurus) { sm["TERSVURUS"]++; sm[bolge + "TERSVURUS"]++; } if (t.mudahale.kesme) { sm["KESME"]++; sm[bolge + "KESME"]++; } if (t.mudahale.uzaklastirma) { sm["UZAKLASTIRMA"]++; sm[bolge + "UZAKLASTIRMA"]++; } } // maç sonu istatistik if (t.tip == TemasTipiEnum.PAS) { if (t.team == TeamEnum.RED) { if (!t.topKaybi) { redIsabetliPas++; } redPas++; } else { if (!t.topKaybi) { blueIsabetliPas++; } bluePas++; } } else if (t.tip == TemasTipiEnum.ORTA) { if (t.team == TeamEnum.RED) { redOrta++; } else { blueOrta++; } } else if (t.tip == TemasTipiEnum.KURTARMA) { if (t.kurtarma.tip == KurtarmaTipiEnum.BASARILI) { if (t.team == TeamEnum.RED) { redKurtarma++; } else { blueKurtarma++; } } } else if (t.tip == TemasTipiEnum.SUT) { if (t.team == TeamEnum.RED) { redSut++; } else { blueSut++; } if (t.sut.sutTipi == SutTipiEnum.ISABETLI) { if (t.team == TeamEnum.RED) { redIsabetliSut++; } else { blueIsabetliSut++; } } } }); //console.log("--------------------------"); //console.log(gameContext.getPlayers().filter(x => x.team != TeamEnum.SPECTATORS).map(x => x.oynadigiSure)); //console.log(gameContext.getPlayers().filter(x => x.team != TeamEnum.SPECTATORS).map(x => x.sonGirdigiZaman)); //console.log(toplamlarByOyuncu); //console.log("--------------------------"); //gameContext.sendStaDetail(toplamlarByOyuncu, scores); for (let i in toplamlarByOyuncu) { let o = toplamlarByOyuncu[i]; for (let prop in o) { if (o[prop] instanceof Object) { for (let subProp in o[prop]) { let ability = gameContext.puanSabitler[prop][subProp]; if (ability) { // console.log(">-------Object---------<"); // console.log(prop + " - " + subProp); //console.log(ability); //console.log(o[prop][subProp]); o.POINT += ability.k * o[prop][subProp]; o.ATTACK += ability.k * ability.att * o[prop][subProp]; o.DEFENSE += ability.k * ability.def * o[prop][subProp]; //console.log(ability.k * o[prop][subProp] + " : " + o.POINT); // console.log("<-------Object--------->"); } } } else { let ability = gameContext.puanSabitler[prop]; if (ability) { //console.log(">-------else---------<"); //console.log(prop); //console.log(ability); //console.log(o[prop]); o.POINT += ability.k * o[prop]; o.ATTACK += ability.k * ability.att * o[prop]; o.DEFENSE += ability.k * ability.def * o[prop]; //console.log(ability.k * o[prop] + " : " + o.POINT); //console.log("<-------else--------->"); } } } } //console.log(toplamlarByOyuncu); let toplamlarByOyuncuArr = []; for (let key in toplamlarByOyuncu) { toplamlarByOyuncuArr.push({ name: toplamlarByOyuncu[key]["NAME"], point: toplamlarByOyuncu[key]["POINT"], attack: toplamlarByOyuncu[key]["ATTACK"], defense: toplamlarByOyuncu[key]["DEFENSE"], }); } let sortedToplamlarByOyuncuAll = toplamlarByOyuncuArr .sort(function (a, b) { return a.point < b.point ? 1 : b.point < a.point ? -1 : 0; }) .filter((x) => x.name != null); let sortedToplamlarByOyuncu = sortedToplamlarByOyuncuAll.slice(0, 5); let macinAdamiSiralama = ""; let macinAdami = ""; let sira = 1; //console.log(sortedToplamlarByOyuncu); for (let key in sortedToplamlarByOyuncu) { if (sortedToplamlarByOyuncu[key].point != undefined) { if (sira == 1) { gameContext.addMacinAdamiToSta(sortedToplamlarByOyuncu[key].name); } if (sira < 4) { gameContext.addIlk3ToSta(sortedToplamlarByOyuncu[key].name); } if (sira < 6) { gameContext.addIlk5ToSta(sortedToplamlarByOyuncu[key].name); } let point = Math.round(sortedToplamlarByOyuncu[key].point); let attack = Math.round(sortedToplamlarByOyuncu[key].attack); let defense = Math.round(sortedToplamlarByOyuncu[key].defense); macinAdamiSiralama += `${sira}. ${sortedToplamlarByOyuncu[key].name}: ${point} puan(a: ${attack} / d: ${defense}), `; sira++; } } let point = Math.round( sortedToplamlarByOyuncu[0] == null ? 0 : sortedToplamlarByOyuncu[0].point ); let attack = Math.round( sortedToplamlarByOyuncu[0] == null ? 0 : sortedToplamlarByOyuncu[0].attack ); let defense = Math.round( sortedToplamlarByOyuncu[0] == null ? 0 : sortedToplamlarByOyuncu[0].defense ); macinAdami = `? ? ${ sortedToplamlarByOyuncu[0] == null ? "" : sortedToplamlarByOyuncu[0].name }: ${point} puan(a: ${attack} / d: ${defense}) ?`; let sureler = gameContext .getPlayers() .filter((x) => x.team != TeamEnum.SPECTATORS) .map((x) => x.oynadigiSure); let sure = sureler.length == 0 ? 0 : (sureler.reduce((sum, val) => (sum += val)) / sureler.length).toFixed( 5 ); let len = 12; //gameContext.oyuncuSayisiOnStart + gameContext.oyunaSonradanGirenSayisiMacta - gameContext.oyundanSonradanCikanSayisiMacta; let staResArr = []; let time = scores.time != null ? scores.time : "?"; for (let i in toplamlarByOyuncu) { let o = toplamlarByOyuncu[i]; staResArr.push(` ----------------------------------------------------------------------------------------------------------------------------- NAME: ${o.NAME} POINT: ${o.POINT} ATTACK: ${o.ATTACK} DEFENSE: ${o.DEFENSE} KK ${o.KK} GOL ${o.GOL} ASIST ${o.ASIST} KKYARDIM ${o.KKYARDIM} GOLKATKI ${o.GOLKATKI} HATAGOL ${o.HATAGOL} PAS: ${o.PAS.TOPLAM} / ${o.PAS.ISABETLI_TOPLAM} SUT: ${o.SUT.TOPLAM} / ${o.SUT.ISABETLI_TOPLAM} KURTARMA: ${o.KURTARMA.OK_TOPLAM} | ${o.KURTARMA.TRY_TOPLAM} MUDAHALE: ${o.MUDAHALE.TOPLAM} TOP_KAPMA: ${o.TOP_KAPMA.TOPLAM} TOP_KAYBI: ${o.TOP_KAYBI.TOPLAM} ---------------------------------------------------------------------------------------------------------- `); } sendMacinAdamiDiscord(staResArr); gameContext.susturmakIstatistik = true; setTimeout(() => { room.sendAnnouncement( String.format("█⛹?‍♂️ ᴛᴏᴘᴀ sᴀʜɪᴘ ᴏʟᴍᴀ ? {0}% ⚔️ {1}% ?█", rto, bto), null, 0xff8800, "bold", 2 ); }, 100); setTimeout(() => { room.sendAnnouncement( String.format("█⛹◧ ᴏʏɴᴀʟɪɴᴀɴ sᴀʜᴀ ? {0}% ⚔️ {1}% ?█", rys, bys), null, 0xdb7500, "bold", 2 ); }, 2000); setTimeout(() => { room.sendAnnouncement( String.format( "█?ᴘᴀs ? {0}({1} %{2}) ⚔️ {3}({4} %{5}) ⚔️ ?█", redPas, redIsabetliPas, ((100 * redIsabetliPas) / redPas).toFixed(2), bluePas, blueIsabetliPas, ((100 * blueIsabetliPas) / bluePas).toFixed(2) ), null, 0xc26800, "bold", 2 ); }, 4000); setTimeout(() => { room.sendAnnouncement( String.format("█?ᴏʀᴛᴀ ? {0} ⚔️ {1} ?█", redOrta, blueOrta), null, 0xab5c00, "bold", 2 ); }, 5000); setTimeout(() => { room.sendAnnouncement( String.format( "█?ᴋᴜʀᴛᴀʀɪs ? {0} ⚔️ {1} ⚔️ ?█", redKurtarma, blueKurtarma ), null, 0x965100, "bold", 2 ); }, 6000); setTimeout(() => { room.sendAnnouncement( String.format( "█⚽? sᴜᴛ ? {0}({1} %{2}) ⚔️ {3}({4} %{5}) ⚔️ ?█", redSut, redIsabetliSut, ((100 * redIsabetliSut) / redSut).toFixed(2), blueSut, blueIsabetliSut, ((100 * blueIsabetliSut) / blueSut).toFixed(2) ), null, 0xc26900, "bold", 2 ); }, 7000); setTimeout(() => { let sira = 1; for (let key in sortedToplamlarByOyuncuAll) { if (sortedToplamlarByOyuncuAll[key].point != undefined) { let point = Math.round(sortedToplamlarByOyuncuAll[key].point); let attack = Math.round(sortedToplamlarByOyuncuAll[key].attack); let defense = Math.round(sortedToplamlarByOyuncuAll[key].defense); let s = ` ${ sira == 1 ? "? Tebrikler Maçın Adamı Oldunuz ?" : sira + "." } ${point} puan(a: ${attack} / d: ${defense})`; let p = gameContext.getPlayerByName( sortedToplamlarByOyuncuAll[key].name ); if (p) { room.sendAnnouncement( "? sɪʀᴀɴɪᴢ: " + s, p.id, 0x9f3bd1, "bold", 2 ); } sira++; } } room.sendAnnouncement( "✔️ ᴇɴ ɪʏɪʟᴇʀ: " + macinAdamiSiralama, null, 0x7c2ea3, "bold", 2 ); }, 8000); setTimeout(() => { room.sendAnnouncement( "? ᴍᴀᴄɪɴ ᴀᴅᴀᴍɪ: " + macinAdami, null, 0xc7a70a, "bold", 2 ); }, 8500); //let p = null; ////p = gameContext.getPlayerById(sortable[0][0]); ////let puan = sortable[0][1]; //if (p) { // setTimeout(() => { // room.sendAnnouncement("En iyi oyuncu şu an test nedeniyle devre dışı!", null, 0x34eb6e, "bold", 2); // //room.sendAnnouncement("En iyi oyuncu: " + p.name + "(" + puan.atak + puan.defans + ")", null, 0x34eb6e, "bold", 2); // }, 4500); //} setTimeout(() => { gameContext.susturmakIstatistik = false; gameContext.ckRedSay = 0; gameContext.ckBlueSay = 0; gameContext.temaslar = []; gameContext.resetOynananSureler(); if (scores.red != scores.blue) { gameContext.addKazananSeri( scores.red > scores.blue ? TeamEnum.RED : TeamEnum.BLUE ); } gameContext.currentTeamColor = null; gameContext.setToDefaultPlayerColor(); // console.log("-----------------------"); // console.log("puanHesapla => bitir"); //console.log(">game-state:" + gameContext.state()); //console.log(">map-state:" + gameContext.getMapState()); //console.log("-----------------------"); }, 9000); } sendToSuperAdmins(text, team) { let arr = gameContext .getPlayers(true) .filter( (x) => x.name == "beta" || x.name == "vadmin" || x.name == "Recep" ); arr.forEach((p) => { room.sendAnnouncement( text, p.id, team == TeamEnum.RED ? 0xff0000 : 0x0000ff, "bold", 2 ); }); } sendToAdmins(player, text, noTrace = false) { gameContext .getPlayers(true) .filter((x) => x.admin || x.id == player.id || x.gizliAdmin) .forEach((p) => { room.sendAnnouncement( text + (!noTrace ? "(ʙᴜ ᴍᴇsᴀᴊɪ sᴀᴅᴇᴄᴇ ?????'ʟᴇʀ ɢᴏʀᴇᴄᴇᴋ)" : ""), p.id, 0xffff00, "bold", 1 ); }); } sendToGizliAdmins(player, text, noTrace = false) { gameContext .getPlayers(true) .filter((x) => x.id == player.id || x.gizliAdmin) .forEach((p) => { room.sendAnnouncement( text + (!noTrace ? "(Bu mesajı sadece gizli adminler görecek)" : ""), p.id, 0xffff00, "bold", 1 ); }); } speak(temas, prevTemas, isabetli, direk) { let s = ""; let s2 = ""; let pName = ""; let prevPName = ""; if (temas) { pName = gameContext.getPlayerById(temas.playerId); pName = pName ? pName.name : ""; } if (prevTemas) { prevPName = gameContext.getPlayerById(prevTemas.playerId); prevPName = prevPName ? prevPName.name : ""; } if (direk && prevTemas.tip == TemasTipiEnum.SUT) { s2 = String.format("{0} sᴜᴛᴜ ᴅɪʀᴇᴋᴅᴇɴ ᴅᴏɴᴜʏᴏʀ", prevPName); } else { if (isabetli) { if (prevTemas.tip == TemasTipiEnum.PAS) { //s2 = String.format("Pas isabetli"); } else if (prevTemas.tip == TemasTipiEnum.SUT) { s2 = String.format("ɪsᴀʙᴇᴛʟɪ sᴜᴛ"); } } if (prevTemas) { if (prevTemas.topKaybi) { //s2 = String.format("{0} topu kaybetti", prevPName); } } if (temas) { if (temas.tip == TemasTipiEnum.PAS) { //if (temas.pas.tip3 == PasTipi3Enum.ARAPAS) { // if (temas.pas.tip2 == PasTipi2Enum.TEKPAS) { // s = String.format("{0} tek pasla araya oynuyor {1}", pName, temas.pas.tip4 == PasTipi4Enum.ONUNEPAS ? "önüne doğru" : ""); // } // else { // s = String.format("{0} bir ara pas {1}", pName, temas.pas.tip4 == PasTipi4Enum.ONUNEPAS ? "önüne doğru" : ""); // } //} //else { // if (temas.pas.tip4 == PasTipi4Enum.ONUNEPAS) { // s = String.format("{0} önüne oynuyor {1}", pName, temas.pas.tip2 == PasTipi2Enum.TEKPAS ? "tek pasla" : ""); // } // else { // let yonler = ["yana", "ileriye", "geriye"]; // s = String.format("{0} pas veriyor {1}", pName, yonler[temas.pas.tip1]); // } //} } else if (temas.tip == TemasTipiEnum.SUT) { s = String.format("{0} ʙɪʀ sᴜᴛ...", pName); } else if (temas.tip == TemasTipiEnum.KURTARMA) { if (temas.kurtarma.tip == KurtarmaTipiEnum.BASARILI) { if (temas.kurtarma.kaleyeDogru && temas.kurtarma.sert) { s = String.format( "{0} ʜᴀʀɪᴋᴀ ʙɪʀ ᴋᴜʀᴛᴀʀɪs, ᴋᴀʟᴇʏᴇ ɢɪᴅᴇɴ ғᴜᴢᴇʏɪ ᴄɪᴋᴀʀᴛᴛɪ.", pName ); } else if (temas.kurtarma.kaleyeDogru) { s = String.format( "{0} ᴛᴏᴘᴜɴ ᴀɢʟᴀʀᴀ ɢɪᴛᴍᴇsɪɴᴇ ɪᴢɪɴ ᴠᴇʀᴍɪʏᴏʀ.", pName ); } else { s = String.format("{0} sᴇʀᴛ ʙɪʀ ᴛᴏᴘ... ᴠᴇ ᴋᴜʀᴛᴀʀıʏᴏʀ", pName); } } else if (temas.kurtarma.tip == KurtarmaTipiEnum.BASLANGIC) { if (temas.kurtarma.kaleyeDogru && temas.kurtarma.sert) { s = String.format( "ᴀɢʟᴀʀᴀ ɢɪᴅᴇɴ ʙɪʀ ғᴜᴢᴇ {0} ᴅᴏᴋᴜɴᴜʏᴏʀ...", pName ); } else if (temas.kurtarma.kaleyeDogru) { s = String.format("ᴋᴀʟᴇʏᴇ ɢᴇʟᴇɴ ᴛᴏᴘ {0} ᴅᴏᴋᴜɴᴅᴜ...", pName); } else { s = String.format("sᴇʀᴛ ɢᴇʟᴇɴ ᴛᴏᴘ {0} ᴅᴏᴋᴜɴᴜʏᴏʀ...", pName); } } else { gameContext.sendToSuperAdmins("ᴋᴜʀᴛᴀʀᴍᴀ ᴅɪɢᴇʀ", temas.team); } } else if (temas.tip == TemasTipiEnum.KONTROL) { //if (temas.topKazanma) { // s = String.format("{0} topu kazanıp kontrol ediyor", pName); //} //else { // s = String.format("{0} topu kontrol ediyor", pName); //} } else if (temas.tip == TemasTipiEnum.SURME) { //s = String.format("{0} topu sürmeye başladı", pName); } else if (temas.tip == TemasTipiEnum.CARPMA) { //s = String.format("{0} top ona çarpıyor", pName); } else if (temas.tip == TemasTipiEnum.MUDAHALE) { if (temas.mudahale.tersVurus) { s = String.format("{0} ʙɪʀ ᴛᴇʀs ᴠᴜʀᴜs...", pName); } //else if (temas.mudahale.uzaklastirma) { // s = String.format("{0} uzaklaştırıyor", pName); //} //else if (temas.mudahale.kesme) { // s = String.format("{0} topu kesti", pName); //} //else { // s = String.format("{0} müdahale", pName); //} } else if (temas.tip == TemasTipiEnum.ORTA) { //s = String.format("{0} ortayı açtı", pName); } else if (temas.tip == TemasTipiEnum.KALEVURUSU) { //s = String.format("{0} kale vuruşunu kullandı", pName); } } } let arr = gameContext .getPlayers(true) .filter((x) => x.name == "beta" || x.name == "vadmin"); let rc = 0xe56e56; let bc = 0x5689e5; if ( prevTemas && gameContext.spikerKonusmak && gameContext.spikerParcalari[prevTemas.tip] ) { if (s2 != "") { room.sendAnnouncement( s2, null, prevTemas.team == TeamEnum.RED ? rc : bc, null, 2 ); } } else { arr.forEach((p) => { if (s2 != "" && prevTemas) { room.sendAnnouncement( s2, p.id, prevTemas.team == TeamEnum.RED ? rc : bc, null, 2 ); } }); } if ( temas && gameContext.spikerKonusmak && gameContext.spikerParcalari[temas.tip] ) { if (s != "") { room.sendAnnouncement( s, null, temas.team == TeamEnum.RED ? rc : bc, "bold", 2 ); } } else { arr.forEach((p) => { if (s != "" && temas) { room.sendAnnouncement( s, p.id, temas.team == TeamEnum.RED ? rc : bc, "bold", 2 ); } }); } } getLastActiveTemasExceptTemas(id) { for (let i = gameContext.temaslar.length - 1; i >= 0; i--) { let temas = gameContext.temaslar[i]; if (temas.id == id) { continue; } if (temas.tip != TemasTipiEnum.TEMAS && temas.tip > -1) { return temas; } } return null; } getLastTemas() { return gameContext.temaslar[gameContext.temaslar.length - 1]; } getLastActiveTemasExceptTip(tip) { for (let i = gameContext.temaslar.length - 1; i >= 0; i--) { let temas = gameContext.temaslar[i]; if ( temas.tip != TemasTipiEnum.TEMAS && temas.tip > -1 && temas.tip != tip ) { return temas; } } return null; } getLastTemasExceptTemas(id) { for (let i = gameContext.temaslar.length - 1; i >= 0; i--) { let temas = gameContext.temaslar[i]; if (temas.id == id) { continue; } return temas; } return null; } getLastActiveTemas() { for (let i = gameContext.temaslar.length - 1; i >= 0; i--) { let temas = gameContext.temaslar[i]; if (temas.tip != TemasTipiEnum.TEMAS && temas.tip > -1) { return temas; } } return null; } getPrevActiveTemas() { let firstActive = false; for (let i = gameContext.temaslar.length - 1; i >= 0; i--) { let temas = gameContext.temaslar[i]; if (temas.tip != TemasTipiEnum.TEMAS && temas.tip > -1) { if (firstActive) { return temas; } firstActive = true; } } return null; } getLastActiveTemasExceptLastTemas() { for (let i = gameContext.temaslar.length - 2; i >= 0; i--) { let temas = gameContext.temaslar[i]; if (temas.tip != TemasTipiEnum.TEMAS && temas.tip > -1) { return temas; } } return null; } getPrevTemas() { let first = false; for (let i = gameContext.temaslar.length - 1; i >= 0; i--) { let temas = gameContext.temaslar[i]; if (first) { return temas; } first = true; } return null; } checkMudahale(temas, activeTouch, topNereye) { let lastActive = gameContext.getLastActiveTemas(); //pas, şut vs kontrol edildikten sonra çalıştırılırsa doğru if ( lastActive && (temas.vurma || activeTouch) && (lastActive.team != temas.team || temas.vurma) ) { temas.tip = TemasTipiEnum.MUDAHALE; temas.mudahale = new Mudahale(); if (temas.vurma) { if ( topNereye.kaleKendi && ((temas.ballSpeed.x < 0 && temas.team == TeamEnum.RED) || (temas.ballSpeed.x > 0 && temas.team == TeamEnum.BLUE)) ) { temas.mudahale.tersVurus = true; } else if ( (temas.ballSpeed.x > 0 && temas.team == TeamEnum.RED) || (temas.ballSpeed.x < 0 && temas.team == TeamEnum.BLUE) ) { temas.mudahale.uzaklastirma = true; } } else { temas.mudahale.kesme = true; } return true; } return false; } checkCarpma(temas, activeTouch) { if (temas.vurma) { return false; } let lastActive = gameContext.getLastActiveTemas(); if (activeTouch && lastActive && lastActive.tip == TemasTipiEnum.SUT) { temas.tip = TemasTipiEnum.CARPMA; return true; } return false; } checkKontrol(temas, activeTouch) { if (temas.vurma) { return false; } let lastActive = gameContext.getLastActiveTemas(); if ( activeTouch && (lastActive == null || (lastActive.tip != TemasTipiEnum.SUT && lastActive.team == temas.team)) ) { temas.tip = TemasTipiEnum.KONTROL; return true; } return false; } checkSut(temas, topNereye) { if (!temas.vurma) { return false; } let ret = false; if ( (temas.team == TeamEnum.RED && temas.ballPos.x > 0 && temas.ballSpeed.x > 0) || (temas.team == TeamEnum.BLUE && temas.ballPos.x < 0 && temas.ballSpeed.x < 0) ) { if ( Math.abs(temas.ballSpeed.x) >= SETTINGS.Physics.minPowerShotSpeed || Math.abs(temas.ballSpeed.y) >= SETTINGS.Physics.minPowerShotSpeed ) { ret = true; //console.log("1"); } //else if (topNereye && ((temas.team == TeamEnum.RED && temas.ballPos.x > gameContext.getStadMeasure().sutMesafesi && temas.ballSpeed.x > 0) || // (temas.team == TeamEnum.BLUE && temas.ballPos.x < -gameContext.getStadMeasure().sutMesafesi && temas.ballSpeed.x < 0))) { // if (!topNereye.colTakim && !topNereye.tac && !topNereye.onunePas && (topNereye.aut || topNereye.kale)) { // ret = true; // console.log("2"); // } //} } if (ret) { temas.tip = TemasTipiEnum.SUT; temas.sut = new Sut(); if (Math.abs(temas.ballSpeed.x) >= SETTINGS.Physics.minPowerShotSpeed) { //procYanmaAnim(); } } return ret; } checkPasYonu(ballSpeed, team) { if (team == TeamEnum.RED) { if (Math.abs(ballSpeed.y) >= Math.abs(ballSpeed.x)) { return PasTipi1Enum.YANPAS; } else if (ballSpeed.x > 0) { return PasTipi1Enum.DIKPAS; } else if (ballSpeed.x < 0) { return PasTipi1Enum.GERIPAS; } } else { if (Math.abs(ballSpeed.y) >= Math.abs(ballSpeed.x)) { return PasTipi1Enum.YANPAS; } else if (ballSpeed.x < 0) { return PasTipi1Enum.DIKPAS; } else if (ballSpeed.x > 0) { return PasTipi1Enum.GERIPAS; } } } checkPas(temas, topNereye) { if (!temas.vurma) { return false; } let ret = false; if (topNereye.colTakim || topNereye.onunePas) { ret = true; } if (ret) { temas.tip = TemasTipiEnum.PAS; temas.pas = new Pas(); temas.pas.tip1 = gameContext.checkPasYonu(temas.ballSpeed, temas.team); let lastActiveTemas = gameContext.getPrevActiveTemas(); temas.pas.tip2 = lastActiveTemas && lastActiveTemas.playerId == temas.playerId ? PasTipi2Enum.NORMAL : PasTipi2Enum.TEKPAS; temas.pas.tip3 = topNereye.araPas ? PasTipi3Enum.ARAPAS : PasTipi3Enum.NORMAL; temas.pas.tip4 = topNereye.colTakim ? PasTipi4Enum.AYAGAPAS : PasTipi4Enum.ONUNEPAS; } return ret; } checkArkaArkayaTemas(playerId) { let count = 0; for (let i = gameContext.temaslar.length - 1; i >= 0; i--) { let temas = gameContext.temaslar[i]; if ( temas.playerId == playerId && !( gameContext.isDuruyor(temas.playerSpeed.x) && gameContext.isDuruyor(temas.playerSpeed.y) ) ) { count++; } else { break; } if (count > 1) { return true; } } return false; } checkKurtarma(temas) { if ( Math.abs(temas.ballPos.x) > gameContext.getStadMeasure().cezaSahaCizgiX && Math.abs(temas.ballPos.x) < gameContext.getStadMeasure().kaleX && Math.abs(temas.ballPos.y) < gameContext.getStadMeasure().cezaSahaCizgiY && ((temas.team == TeamEnum.RED && temas.ballPos.x < 0) || (temas.team == TeamEnum.BLUE && temas.ballPos.x > 0)) ) { let lastActive = gameContext.getLastActiveTemasExceptTemas(temas.id); if (!lastActive) { return false; } let p = gameContext.getPlayerById(temas.playerId); if (lastActive.team != temas.team) { let kaleyeDogru = gameContext.checkLastKonumKalede( gameContext._lastBallPos, gameContext._lastBallSpeed, temas.team == TeamEnum.RED ? TeamEnum.BLUE : TeamEnum.RED, SETTINGS.Physics.kaleDeviation ); let sert = Math.abs(gameContext._lastBallSpeed.x) > SETTINGS.Physics.minKurtarmaSutHizi || Math.abs(gameContext._lastBallSpeed.y) > SETTINGS.Physics.minKurtarmaSutHizi; if (kaleyeDogru || sert) { let kaleyeDogruDokunma = gameContext.checkLastKonumKalede( temas.ballPos, temas.ballSpeed, temas.team == TeamEnum.RED ? TeamEnum.BLUE : TeamEnum.RED, 0 ); temas.tip = TemasTipiEnum.KURTARMA; temas.kurtarma = new Kurtarma(); if (kaleyeDogruDokunma) { temas.kurtarma.tip = KurtarmaTipiEnum.BASLANGIC; } else { temas.kurtarma.tip = KurtarmaTipiEnum.BASARILI; if (p) { gameContext.addKurtarmaToSta(p.name); } } temas.kurtarma.kaleyeDogru = kaleyeDogru; temas.kurtarma.sert = sert; return true; } } else if ( lastActive.playerId == temas.playerId && lastActive.tip == TemasTipiEnum.KURTARMA && (lastActive.kurtarma.tip == KurtarmaTipiEnum.BASLANGIC || lastActive.kurtarma.tip == KurtarmaTipiEnum.DEVAMEDEN) ) { let baslangic = gameContext.temaslar.find( (x) => x.tip == TemasTipiEnum.KURTARMA && x.kurtarma.tip == KurtarmaTipiEnum.BASLANGIC ); let kaleyeDogru = gameContext.checkLastKonumKalede( baslangic.prevBallPos, baslangic.prevBallSpeed, temas.team == TeamEnum.RED ? TeamEnum.BLUE : TeamEnum.RED, SETTINGS.Physics.kaleDeviation ); let kaleyeDogruDokunma = gameContext.checkLastKonumKalede( temas.ballPos, temas.ballSpeed, temas.team == TeamEnum.RED ? TeamEnum.BLUE : TeamEnum.RED, 0 ); let sert = Math.abs(baslangic.prevBallSpeed.x) > SETTINGS.Physics.minKurtarmaSutHizi || Math.abs(baslangic.prevBallSpeed.y) > SETTINGS.Physics.minKurtarmaSutHizi; temas.tip = TemasTipiEnum.KURTARMA; temas.kurtarma = new Kurtarma(); if (kaleyeDogruDokunma) { temas.kurtarma.tip = KurtarmaTipiEnum.DEVAMEDEN; } else { temas.kurtarma.tip = KurtarmaTipiEnum.BASARILI; temas.kurtarma.kaleyeDogru = kaleyeDogru; temas.kurtarma.sert = sert; if (p) { gameContext.addKurtarmaToSta(p.name); } } return true; } } return false; } checkDirek() { let ballDisc = room.getDiscProperties(0); let lastActive = gameContext.getLastActiveTemas(); if ( !ballDisc || !lastActive || lastActive.direk || (gameContext.isYavas(gameContext._lastBallSpeed.x) && gameContext.isYavas(gameContext._lastBallSpeed.y)) ) { return false; } let stad = gameContext.getStadMeasure(); let ballR = stad.ballRadius; let direkR = stad.direkRadius; let deviation = 3.5; let redKaleDirekCol = CollisionDetection.circleCircle( { x: ballDisc.x, y: ballDisc.y }, { x: -stad.direkX, y: stad.direkY }, ballR + direkR + deviation ) || CollisionDetection.circleCircle( { x: ballDisc.x, y: ballDisc.y }, { x: -stad.direkX, y: -stad.direkY }, ballR + direkR + deviation ); let maviKaleDirekCol = CollisionDetection.circleCircle( { x: ballDisc.x, y: ballDisc.y }, { x: stad.direkX, y: stad.direkY }, ballR + direkR + deviation ) || CollisionDetection.circleCircle( { x: ballDisc.x, y: ballDisc.y }, { x: stad.direkX, y: -stad.direkY }, ballR + direkR + deviation ); if (redKaleDirekCol || maviKaleDirekCol) { lastActive.direk = true; return true; } } temasEkle(touch, vurma, ballSpeedParam, activeTouch, hizDegistirenTouch) { let topNereye = null; let lastActive = gameContext.getLastActiveTemas(); let ballDisc = room.getDiscProperties(0); if (!activeTouch && !vurma) { if (gameContext.isRSv6Yayli() && lastActive) { if ( Math.abs(ballDisc.xspeed) >= SETTINGS.Physics.yayHiz || Math.abs(ballDisc.yspeed) >= SETTINGS.Physics.yayHiz ) { if ( (lastActive.tip == TemasTipiEnum.SUT || lastActive.tip == TemasTipiEnum.PAS || lastActive.tip == TemasTipiEnum.MUDAHALE || lastActive.tip == TemasTipiEnum.SURME || lastActive.tip == TemasTipiEnum.KONTROL) && (lastActive.tip != TemasTipiEnum.SUT || !lastActive.sut.yay) ) { let tBallPos = lastActive.ballPos; let tBallSpeed = lastActive.ballSpeed; let tPrevBallPos = lastActive.prevBallPos; let tPrevBallSpeed = lastActive.prevBallSpeed; lastActive.ballPos = { x: ballDisc.x, y: ballDisc.y }; lastActive.ballSpeed = { x: ballDisc.xspeed, y: ballDisc.yspeed }; lastActive.prevBallPos = { x: gameContext._lastBallPos.x, y: gameContext._lastBallPos.y, }; lastActive.prevBallSpeed = { x: gameContext._lastBallSpeed.x, y: gameContext._lastBallSpeed.y, }; if (gameContext.checkSut(lastActive, null)) { lastActive.sut.yay = true; lastActive.vurma = true; lastActive.pas = null; lastActive.orta = null; lastActive.kaleVurusu = null; lastActive.mudahale = null; lastActive.kurtarma = null; gameContext.speak(lastActive, null, false, false); } else { lastActive.ballPos = tBallPos; lastActive.ballSpeed = tBallSpeed; lastActive.prevBallPos = tPrevBallPos; lastActive.prevBallSpeed = tPrevBallSpeed; } } } } } if (gameContext.checkDirek()) { let lastActiveExKurtarma = gameContext.getLastActiveTemasExceptTip( TemasTipiEnum.KURTARMA ); //gameContext.sendToSuperAdmins("Direk", lastActive.team); if (lastActiveExKurtarma) { gameContext.speak(null, lastActiveExKurtarma, false, true); } } if (!touch) { if ( ballDisc && !gameContext.isDuruyor(ballDisc.x) && !gameContext.isDuruyor(ballDisc.y) && !gameContext.isOutsideStadium({ x: ballDisc.x, y: ballDisc.y }) ) { if (lastActive) { let p = gameContext.getPlayerById(lastActive.playerId); if (p == null) { return; } let last = gameContext.getLastTemas(); if (last == null) { return null; } if ( last.tip == TemasTipiEnum.DISARDAN && (last.disariDurum == DisariDurum.AUT || last.disariDurum == DisariDurum.KORNER) ) { if ( Math.abs(ballDisc.xspeed) >= SETTINGS.Physics.yayHiz || Math.abs(ballDisc.yspeed) >= SETTINGS.Physics.yayHiz ) { last.tip = lastActive.disariDurum == DisariDurum.AUT ? TemasTipiEnum.KALEVURUSU : TemasTipiEnum.ORTA; //gameContext.sendToSuperAdmins(String.format(lastActive.tip == TemasTipiEnum.KALEVURUSU ? "{0} kale vuruşunu kullandı" : "{0} ortayı açtı" // , p.name), lastActive.team); gameContext.speak(last, null, false, false); } else { if (!lastActive.vurma) { lastActive.tip = TemasTipiEnum.KURALSIZ; } else { lastActive.tip = TemasTipiEnum.PAS; lastActive.pas = new Pas(); lastActive.pas.tip1 = gameContext.checkPasYonu( lastActive.ballSpeed, lastActive.team ); lastActive.pas.tip2 = PasTipi2Enum.NORMAL; lastActive.pas.tip3 = PasTipi3Enum.NORMAL; lastActive.tip4 = PasTipi4Enum.AYAGAPAS; //gameContext.sendToSuperAdmins(String.format(lastActive.tip == TemasTipiEnum.KALEVURUSU ? "{0} kale vuruşunu paslaşarak kulanıyor" : "{0} köşe vuruşunu paslaşarak kullanıyor" // , p.name), lastActive.team); gameContext.speak(lastActive, null, false, false); } } } else if (lastActive.tip == TemasTipiEnum.DISARDAN) { if (lastActive.disariDurum == DisariDurum.TAC) { if (lastActive.vurma) { lastActive.tip = TemasTipiEnum.TAC; } else { lastActive.tip = TemasTipiEnum.KURALSIZ; } } } } } } else { let temas = new Temas(); temas.vurma = vurma; let ballSpeed = ballSpeedParam == null ? gameContext.topHizHesapla() : ballSpeedParam; temas.ballSpeed = ballSpeed; let res = Temas.Add(temas); if (res == null) { return; } let p = gameContext.getPlayerById(temas.playerId); if (p == null) { return; } let belirlendi = false; let arkaArkaya = gameContext.checkArkaArkayaTemas(p.id); let prevActiveTemas = gameContext.getPrevActiveTemas(); if (vurma) { topNereye = gameContext.checkTopNereye( p, temas.ballPos, temas.playerPos, temas.ballSpeed, temas.playerSpeed ); } temas.disariDurum = gameContext._disariDurum; if (gameContext.isOutsideStadium(temas.ballPos)) { if ( gameContext._disariDurum != -1 && gameContext._disariTeam == temas.team ) { temas.tip = TemasTipiEnum.DISARDAN; } else if (vurma || activeTouch || arkaArkaya) { temas.tip = TemasTipiEnum.KURALSIZ; } else { temas.tip = TemasTipiEnum.TEMAS; } } else { if (gameContext.checkKurtarma(temas)) { belirlendi = true; if ( temas.kurtarma.tip == KurtarmaTipiEnum.BASARILI || temas.kurtarma.tip == KurtarmaTipiEnum.BASLANGIC ) { //gameContext.sendToSuperAdmins(String.format("Kurtarma({0}):{1}", p.name, stringOfEnum(KurtarmaTipiEnum, temas.kurtarma.tip)), temas.team); } } else if (gameContext.checkSut(temas, topNereye)) { belirlendi = true; //gameContext.sendToSuperAdmins(String.format("Şut({0})", p.name), temas.team); } else if (gameContext.checkPas(temas, topNereye)) { belirlendi = true; // gameContext.sendToSuperAdmins(String.format("Pas({0}):{1},{2},{3},{4}", p.name, // stringOfEnum(PasTipi1Enum, temas.pas.tip1), stringOfEnum(PasTipi2Enum, temas.pas.tip2), // stringOfEnum(PasTipi3Enum, temas.pas.tip3), stringOfEnum(PasTipi4Enum, temas.pas.tip4)), temas.team); } else if (gameContext.checkKontrol(temas, activeTouch)) { belirlendi = true; //gameContext.sendToSuperAdmins(String.format("Kontrol({0})", p.name), temas.team); } else if (gameContext.checkCarpma(temas, activeTouch)) { belirlendi = true; //gameContext.sendToSuperAdmins(String.format("Çarpma({0})", p.name), temas.team); } else if (gameContext.checkMudahale(temas, activeTouch, topNereye)) { belirlendi = true; //gameContext.sendToSuperAdmins(String.format("Müdahale({0}):Ters vuruş:{1},Kesme:{2},Uzaklaştırma:{3}", p.name, temas.mudahale.tersVurus, temas.mudahale.kesme, temas.mudahale.uzaklastirma), temas.team); } else if (gameContext.checkArkaArkayaTemas(temas.playerId)) { temas.tip = TemasTipiEnum.SURME; belirlendi = true; if ( prevActiveTemas && (prevActiveTemas.tip != TemasTipiEnum.SURME || prevActiveTemas.playerId != temas.playerId) ) { //gameContext.sendToSuperAdmins(String.format("Top Sürme({0})", p.name), temas.team); } } else { temas.tip = TemasTipiEnum.TEMAS; belirlendi = true; } let lastActiveTemasExceptTemas = gameContext.getLastActiveTemasExceptTemas(temas.id); let isabetli = false; let topKaybi = false; if (lastActiveTemasExceptTemas) { let prevPlayer = gameContext.getPlayerById( lastActiveTemasExceptTemas.playerId ); prevPlayer = prevPlayer ? prevPlayer.name : ""; // eksik genişletilecek let penAreaX = gameContext.getStadMeasure().cezaSahaCizgiX; let penAreaY = gameContext.getStadMeasure().cezaSahaCizgiY; if ( lastActiveTemasExceptTemas.tip == TemasTipiEnum.SUT && lastActiveTemasExceptTemas.team != temas.team ) { if ( ((lastActiveTemasExceptTemas.team == TeamEnum.RED && temas.playerPos.x > penAreaX) || (lastActiveTemasExceptTemas.team == TeamEnum.BLUE && temas.playerPos.x < -penAreaX)) && temas.playerPos.y < Math.abs(penAreaY) ) { lastActiveTemasExceptTemas.sut.sutTipi = SutTipiEnum.ISABETLI; isabetli = true; //gameContext.sendToSuperAdmins(String.format("İsabetli şut({0})", prevPlayer), lastActiveTemasExceptTemas.team); //gameContext.speak(null, lastActiveTemasExceptTemas, true, false); } } if ( temas.tip != TemasTipiEnum.TEMAS && lastActiveTemasExceptTemas.tip != TemasTipiEnum.SUT ) { if (temas.team != lastActiveTemasExceptTemas.team) { lastActiveTemasExceptTemas.topKaybi = true; temas.topKazanma = true; topKaybi = true; // gameContext.sendToSuperAdmins(String.format("Top kaybı({0})", prevPlayer), lastActiveTemasExceptTemas.team); // gameContext.sendToSuperAdmins(String.format("Top kazanma({0})", p.name), temas.team); //gameContext.speak(temas, lastActiveTemasExceptTemas, false, false); } else { if (lastActiveTemasExceptTemas.tip == TemasTipiEnum.PAS) { lastActiveTemasExceptTemas.pas.alanPlayerId = temas.playerId; } } } } if ( topKaybi || isabetli || temas.tip != TemasTipiEnum.SURME || (prevActiveTemas && (prevActiveTemas.tip != TemasTipiEnum.SURME || prevActiveTemas.playerId != temas.playerId)) ) { gameContext.speak(temas, lastActiveTemasExceptTemas, isabetli, false); } } } } checkTopSurme(player, ballPos) { if (player.id != gameContext.getLastTouchedPlayer().id) return false; let playerPos = player.position; return ( (playerPos.x != this._lastPlayerPositionIfHit.x || playerPos.y != this._lastPlayerPositionIfHit.y) && (ballPos.x != this._lastBallPositionIfHit.x || ballPos.y != this._lastBallPositionIfHit.y) ); } showOfsaytKullandi() { if (gameContext._ofsaytVurma != 0) { room.sendAnnouncement("Ofsayt kullanıldı.", null, 0x00ff00); } } checkOfsaytVurma(player) { if (player.team == gameContext._ofsaytVurma) { gameContext.checkKickOfsayt(); let ballPos = room.getBallPosition(); if (ballPos) { room.setDiscProperties(0, { x: ballPos.x, y: ballPos.y, xspeed: 0, yspeed: 0, }); } room.pauseGame(true); room.sendAnnouncement( SETTINGS.Strings.General.ofsaytVurma, null, 0xff0000, "bold", 2 ); gameContext.kickOfsaytVurursa = true; setTimeout(() => { room.pauseGame(false); }, 3 * 1000); return true; } else { gameContext.showOfsaytKullandi(); gameContext._ofsaytVurma = 0; return false; } } reset() { gameContext.getPlayers(true).forEach((p) => { p.cizgi = false; }); gameContext.tacUzaklasti = false; //gameContext.temaslar = []; gameContext._disariDurum = -1; gameContext._disariTeam = -1; gameContext.resetMevkiCezas(); gameContext.mevkiTespitCount = 1; gameContext.mevkiDongu = 0; gameContext.kayipZaman = 0; gameContext.kayipZamanBildirim = false; //console.log("reset: " + gameContext.getMapState()); gameContext.getPlayers(true).forEach((p) => { if (p.dizilimTimeout) { clearTimeout(p.dizilimTimeout); p.dizilimTimeout = null; } }); gameContext.resetOffsideLine(); gameContext.resetPlayerActivities(); //gameContext.resetToplaOynama(); gameContext.resetCizgi(); gameContext.tacDegis = false; gameContext.hukmenGolTeam = 0; } checkKornerState() { let ballPos = room.getBallPosition(); let th = gameContext.topHizHesapla(); if (gameContext._kornerDurum == KornerDurum.KORNER) { if ((ballPos.y < 0 && th.y > 1) || (ballPos.y > 0 && th.y < -1)) { gameContext._kornerDurum = KornerDurum.KULLANMA; } } else if (gameContext._kornerDurum == KornerDurum.KULLANMA) { gameContext._kornerDurum = KornerDurum.DOKUNMA; } else if (gameContext._kornerDurum == KornerDurum.DOKUNMA) { gameContext._kornerDurum = KornerDurum.YOK; } } checkAutState() { let ballPos = room.getBallPosition(); let th = gameContext.topHizHesapla(); if (gameContext._autDurum == AutDurum.AUT) { if ((ballPos.x < 0 && th.x > 2) || (ballPos.x > 0 && th.x < -2)) { gameContext._autDurum = AutDurum.KULLANMA; } } else if (gameContext._autDurum == AutDurum.KULLANMA) { gameContext._autDurum = AutDurum.DOKUNMA; } else if (gameContext._autDurum == AutDurum.DOKUNMA) { gameContext._autDurum = AutDurum.YOK; } } checkTacState() { let ballPos = room.getBallPosition(); let th = gameContext.topHizHesapla(); if (gameContext._tacDurum == TacDurum.TAC) { if ((ballPos.y < 0 && th.y > 0) || (ballPos.y > 0 && th.y < 0)) { gameContext._tacDurum = TacDurum.KULLANMA; } } else if (gameContext._tacDurum == TacDurum.KULLANMA) { gameContext._tacDurum = TacDurum.DOKUNMA; } else if (gameContext._tacDurum == TacDurum.DOKUNMA) { gameContext._tacDurum = TacDurum.YOK; } } checkKickOfsayt() { if (gameContext.kickOfsaytVurursa) { let lp = gameContext.getLastTouchedPlayer(); if (lp.team == gameContext._ofsaytVurma) { room.kickPlayer(lp.id, SETTINGS.Strings.General.kickOfsayt, false); } } } checkTacCizgi() { let ballPos = room.getBallPosition(); if (!ballPos) { return; } if ( gameContext.tacUzaklasti && gameContext._disariDurum == DisariDurum.TAC && Math.abs(ballPos.y) <= gameContext.getStadMeasure().tacCezaY ) { let tacCizgi = gameContext.getStadMeasure().tacCizgi; let takim = gameContext._disariTeam == TeamEnum.RED ? TeamEnum.BLUE : TeamEnum.RED; //gameContext._tacTakim; gameContext .getPlayersByTeamWithPos(takim) .filter((x) => !x.cizgi && !x.cezali) .forEach((v, i) => { if ( Math.abs(ballPos.x - v.position.x) < gameContext.getStadMeasure().tacCizgiFark ) { let cond = false; if (ballPos.y < 0) { if (v.position.y < -tacCizgi) { cond = true; } } else { if (v.position.y > tacCizgi) { cond = true; } } if (cond) { v.cizgi = true; gameContext.uyariCizgi(v); } } }); } if ( gameContext._disariDurum < 1 || gameContext._disariDurum != DisariDurum.TAC ) { return; } if (gameContext._tacDurum == TacDurum.TAC) gameContext._tacCizgiLock = false; if (gameContext._tacDurum != TacDurum.KULLANMA) return; if (gameContext._tacCizgiLock) return; } checkAutCizgi() { if ( gameContext._disariDurum < 1 || gameContext._disariDurum != DisariDurum.AUT ) { return; } if (gameContext._autDurum == AutDurum.AUT) gameContext._autCizgiLock = false; if (gameContext._autDurum != AutDurum.KULLANMA) return; if (gameContext._autCizgiLock) return; let ballPos = room.getBallPosition(); if (!ballPos) { return; } let takim = gameContext._autTakim; let autCizgiX = gameContext.getStadMeasure().cezaSahaCizgiX; let autCizgiY = gameContext.getStadMeasure().cezaSahaCizgiY; let maxcizgiSayisi = SETTINGS.Physics.maxcizgiSayisi; gameContext.getPlayersByTeamWithPos(takim).forEach((v, i) => { if (v.position.y <= autCizgiY && v.position.y >= -autCizgiY) { let cond = false; if (ballPos.x < 0) { if (v.position.x <= -autCizgiX) { cond = true; } } else { if (v.position.x >= autCizgiX) { cond = true; } } if (cond) { gameContext.uyariCizgi(v); } } }); } checkKornerCizgi() { if ( gameContext._disariDurum < 1 || gameContext._disariDurum != DisariDurum.KORNER ) { return; } if (gameContext._kornerDurum == KornerDurum.KORNER) gameContext._kornerCizgiLock = false; if (gameContext._kornerDurum != KornerDurum.KULLANMA) return; if (gameContext._kornerCizgiLock) return; let ballPos = room.getBallPosition(); if (!ballPos) { return; } let takim = gameContext._kornerTakim; let maxTimes = SETTINGS.Physics.tacCizgiTimes; let maxcizgiSayisi = SETTINGS.Physics.maxcizgiSayisi; let cizgiX = gameContext.getStadMeasure().kornerCizgiX; let cizgiY = gameContext.getStadMeasure().kornerCizgiY; let r = gameContext.getStadMeasure().kornerRadius; gameContext.getPlayersByTeamWithPos(takim).forEach((v, i) => { let cond = false; if ( ballPos.x < 0 && ballPos.y < 0 && CollisionDetection.circleCircle( v.position, { x: -cizgiX, y: -cizgiY }, r ) ) { cond = true; } else if ( ballPos.x < 0 && ballPos.y > 0 && CollisionDetection.circleCircle( v.position, { x: -cizgiX, y: cizgiY }, r ) ) { cond = true; } else if ( ballPos.x > 0 && ballPos.y > 0 && CollisionDetection.circleCircle(v.position, { x: cizgiX, y: cizgiY }, r) ) { cond = true; } else if ( ballPos.x > 0 && ballPos.y < 0 && CollisionDetection.circleCircle( v.position, { x: cizgiX, y: -cizgiY }, r ) ) { cond = true; } if (cond) { gameContext.uyariCizgi(v); } }); } resetCizgi() { gameContext.getPlayers(true).forEach((v, i) => { v.cizgiSayisi = 0; }); gameContext.resetCizgiState(); } resetCizgiState() { gameContext.getPlayers(true).forEach((v, i) => { v.tacCizgiTimes = 0; v.autCizgiTimes = 0; v.kornerCizgiTimes = 0; }); gameContext._kornerDurum = 0; gameContext._kornerTakim = 0; gameContext._autDurum = 0; gameContext._autTakim = 0; gameContext._tacDurum = 0; gameContext._tacTakim = 0; } resetToplaOynama() { this.redToplaOynama = 0; this.redToplaOynamaTime = 0; this.blueToplaOynama = 0; this.blueToplaOynamaTime = 0; this.redBolgeOynandi = 0; this.blueBolgeOynandi = 0; } toplaOynamaEkle() { if ( gameContext.getMapState() == MapState.RSv6 || gameContext.getMapState() == MapState.RSV4 ) { let lp = gameContext.getLastTouchedPlayer(); let pp = gameContext.getPrevTouchedPlayer(); let scores = room.getScores(); if (scores == null) { return; } let time = scores.time; if (lp) { if (pp) { if (pp.team == TeamEnum.RED) { gameContext.redToplaOynama += time - gameContext.redToplaOynamaTime; } else { gameContext.blueToplaOynama += time - gameContext.blueToplaOynamaTime; } } if (lp.team == TeamEnum.RED) { gameContext.redToplaOynamaTime = time; } else { gameContext.blueToplaOynamaTime = time; } } } let ballPos = room.getBallPosition(); if (ballPos) { if (ballPos.x < 0) { this.redBolgeOynandi++; } else if (ballPos.x > 0) { this.blueBolgeOynandi++; } } } topHizHesapla() { var bp = room.getBallPosition(); this.topunHizi.x = bp.x - this.oncekiTopKonumu.x; this.topunHizi.y = bp.y - this.oncekiTopKonumu.y; this.oncekiTopKonumu.x = bp.x; this.oncekiTopKonumu.y = bp.y; let ball = room.getDiscProperties(0); this.topunHizi.x = ball.xspeed; this.topunHizi.y = ball.yspeed; return gameContext.topunHizi; } updateOffsideLine() { let ballPos = room.getBallPosition(); if (ballPos == null) { return; } gameContext.offsideBallPos = ballPos; let players = this.getPlayersWithPos().filter((x) => !x.cezali); this._playerPositionsOnTouched = []; for (var i = 0; i < players.length; i++) { var p = players[i]; this._playerPositionsOnTouched.push({ position: { x: p.position.x, y: p.position.y }, id: p.id, name: p.name, team: p.team, }); } var r = players .filter((p) => p.team == TeamEnum.RED) .sort(function (a, b) { return a.position.x - b.position.x; }); var b = players .filter((p) => p.team == TeamEnum.BLUE) .sort(function (a, b) { return b.position.x - a.position.x; }); this._redOffsideLine = r.length > 0 ? r[Math.min(this._offsideMinPlayerIndex, r.length - 1)].position.x : -gameContext.getStadMeasure().stadiumWidth; this._blueOffsideLine = b.length > 0 ? b[Math.min(this._offsideMinPlayerIndex, b.length - 1)].position.x : gameContext.getStadMeasure().stadiumWidth; //console.log(JSON.stringify(b)); } resetOffsideLine() { this._playerPositionsOnTouched = []; this._redOffsideLine = -gameContext.getStadMeasure().stadiumWidth; this._blueOffsideLine = gameContext.getStadMeasure().stadiumWidth; this._lastTouchedPlayerId = null; this._prevTouchedPlayerId = null; this._lastActiveTouchedPlayerId = null; this._prevActiveTouchedPlayerId = null; this._prevDifferentActiveTouchedPlayerId = null; this._lastBallSpeedOnTouchedPlayer = { x: 0, y: 0 }; this._lastBallSpeed = { x: 0, y: 0 }; this._lastBallPos = { x: 0, y: 0 }; this._ofsaytVurma = 0; this._tacDurum = TacDurum.YOK; this._tacTakim = 0; this.kickOfsaytVurursa = false; } takimDegis(id, team) { let p = gameContext.getPlayerById(id); if (p) { gameContext.degisenTakim = p.team ? p.team : TeamEnum.SPECTATORS; room.setPlayerTeam(id, team); } } oyuncuKar() { let sp = gameContext.getPlayersByTeam(TeamEnum.SPECTATORS); let rp = gameContext.getPlayersByTeam(TeamEnum.RED); let bp = gameContext.getPlayersByTeam(TeamEnum.BLUE); if (sp.length == 0 && rp.length == bp.length) { rp.forEach((v, i) => { //gameContext.autoSelectPlayerByRedToSpec(); gameContext.takimDegis(v.id, TeamEnum.SPECTATORS); }); bp.forEach((v, i) => { //gameContext.autoSelectPlayerByBlueToSpec(); gameContext.takimDegis(v.id, TeamEnum.SPECTATORS); }); rp.forEach((v, i) => { setTimeout(() => { gameContext.autoSelectPlayer(TeamEnum.RED); }, 500); }); bp.forEach((v, i) => { setTimeout(() => { gameContext.autoSelectPlayer(TeamEnum.BLUE); }, 500); }); return true; } return false; } oyuncuSecGoster() { let rs = gameContext.redSecebilir(); let bs = gameContext.blueSecebilir(); if (rs || bs) { if ( gameContext.state() == GameState.SELECTEDPLAYER && gameContext.getMapState() != MapState.Dizilim ) { room.pauseGame(true); } gameContext.sendChatForTeam( SETTINGS.Strings.General.sec, rs ? TeamEnum.RED : TemasTipiEnum.BLUE ); if (rs) { gameContext.secmeListele(TeamEnum.RED); } if (bs) { gameContext.secmeListele(TeamEnum.BLUE); } } } //getPlayerBySpecOrder(n) { // gameContext.getPlayersByTeam(TeamEnum.SPECTATORS).find(x => x.specOrder == n); //} kufurAlgila(msg) { let kufur = false; let msgParts = msg.toLowerCase().split(" "); SETTINGS.Game.kufurler.forEach((v, i) => { msgParts.forEach((m, mi) => { if (m == v) { kufur = true; } }); }); return kufur; } specOrderSil(player) { let p = gameContext._playerInformation.find((x) => x.id == player.id); let sp = gameContext.getPlayersByTeam(TeamEnum.SPECTATORS, true); if (p) { for (let i = 0; i < sp.length; i++) { if (sp[i].specOrder > p.specOrder) { sp[i].specOrder--; } } } } lastSpecOrder() { let sp = gameContext.getPlayersByTeam(TeamEnum.SPECTATORS, true); sp.sort((a, b) => { return a.specOrder - b.specOrder; }); return sp.length == 0 ? 0 : sp[sp.length - 1].specOrder; } oyuncuGeldiginde() { room.pauseGame(false); if ( gameContext.state() == GameState.MATCHSTARTED || gameContext.state() == GameState.SELECTEDPLAYER ) { gameContext.tamamla(); gameContext.haritaBelirle(); } gameContext.oyuncuSecGoster(); } bosTakimSifirla() { let sp = gameContext.getPlayersByTeam(TeamEnum.SPECTATORS); let rp = gameContext.getPlayersByTeam(TeamEnum.RED); let bp = gameContext.getPlayersByTeam(TeamEnum.BLUE); if (rp.length == 0) { if (sp.length == 0) { if (bp.length > 0) { gameContext.takimDegis(bp[0].id, TeamEnum.RED); } } else { gameContext.autoSelectPlayer(TeamEnum.RED); } } else if (bp.length == 0) { if (sp.length == 0) { if (rp.length > 0) { gameContext.takimDegis(rp[0].id, TeamEnum.BLUE); } } else { gameContext.autoSelectPlayer(TeamEnum.BLUE); } } } disla() { let sp = gameContext.getPlayersByTeam(TeamEnum.SPECTATORS); let rp = gameContext.getPlayersByTeam(TeamEnum.RED); let bp = gameContext.getPlayersByTeam(TeamEnum.BLUE); if (sp.length == 0) { if (rp.length > bp.length) { gameContext.autoSelectPlayerByRedToSpec(); } else if (bp.length > rp.length) { gameContext.autoSelectPlayerByBlueToSpec(); } } } oynanabilir() { let sp = gameContext.getPlayersByTeam(TeamEnum.SPECTATORS); let rp = gameContext.getPlayersByTeam(TeamEnum.RED); let bp = gameContext.getPlayersByTeam(TeamEnum.BLUE); let maxPlayer = gameContext.getCurrentMaxPlayer(); return ( (bp.length == maxPlayer && rp.length == maxPlayer) || (bp.length == rp.length && bp.length > 0 && sp.length < 2) ); } checkLastEmptyMevki(team) { return; let avatars = SETTINGS.Castles.slice(0, 7).map((x) => x.avatar); let teamAvatars = gameContext.getPlayersByTeam(team).map((x) => x.avatar); for (let i = 0; i < teamAvatars.length; i++) { let a = teamAvatars[i]; avatars = avatars.filter((x) => x != a); } if (avatars.length == 1) { let lp = gameContext.getPlayersByTeam(team).find((x) => x.avatar == 0); let emptyCastle = SETTINGS.Castles.slice( (team - 1) * 6, (team - 1) * 6 + 6 ).find((x) => x.avatar == avatars[0]); if (lp && emptyCastle) { room.setPlayerDiscProperties(lp.id, { x: (emptyCastle.x1 + emptyCastle.x2) / 2, y: (emptyCastle.y1 + emptyCastle.y2) / 2, xspeed: 0, yspeed: 0, }); } } } checkCollisionCastles(onlySecildi = false) { let ok = false; if (!onlySecildi) { gameContext.getPlayersWithPos().forEach((p) => { let colCastle = null; let index = 0; for (let i = 0; i < SETTINGS.Castles.length; i++) { let castle = SETTINGS.Castles[i]; let castleCircle = { x: castle.x, y: castle.y }; if (CollisionDetection.circleCircle(p.position, castleCircle, 20)) { colCastle = castle; index = i; break; } } if (colCastle) { if ( p.castleIndex == -1 && gameContext .getPlayers() .find((x) => x.castleIndex == index && x.id != p.id) == null ) { p.castleIndex = index; p.avatar = colCastle.avatar; clearTimeout(p.dizilimTimeout); p.dizilimTimeout = null; room.setPlayerDiscProperties(p.id, { x: colCastle.x, y: colCastle.y, xspeed: 0, yspeed: 0, }); if (gameContext.checkAllSelectCastles()) { ok = true; } } else if (!(p.castleIndex != -1 && p.castleIndex == index)) { room.sendAnnouncement("ʙᴜ ᴍᴇᴠᴋɪʏɪ sᴇᴄᴇᴍᴇᴢsɪɴ, " + p.showName()); if (p.team == TeamEnum.RED) { room.setPlayerDiscProperties(p.id, { x: -320, xspeed: 0, yspeed: 0, }); } else { room.setPlayerDiscProperties(p.id, { x: 320, xspeed: 0, yspeed: 0, }); } } } }); } if (ok || (onlySecildi && gameContext.checkAllSelectCastles())) { gameContext.mevkilerSecildi = true; gameContext.haritaBelirle(); } } rsv4Ac(devam = false) { gameContext.resetMapOylama(); if (!devam) { room.stopGame(); } //room.setCustomStadium(SETTINGS.Maps.RsVs6); gameContext.setMapState(MapState.RSV4); //gameContext.mapOylamaAc(); } haritaBelirle() { if ( gameContext.checkMapState() == MapState.CLASSIC && gameContext.getMapState() != MapState.CLASSIC ) { if (!gameContext.isStop) { room.stopGame(); } room.setCustomStadium(SETTINGS.Maps.Classic); gameContext.setMapState(MapState.CLASSIC); setTimeout(() => { gameContext.changeState(GameState.MATCHSTARTED); //console.log("match started settimeoutda"); }, 2000); gameContext.resetMapOylama(); gameContext.resetDizilim(true, 0); } else if ( gameContext.checkMapState() == MapState.Dizilim && gameContext.getMapState() != MapState.Dizilim ) { if (!gameContext.isStop) { // console.log("-----------------------"); // console.log("stop: haritabelirle"); //console.log(">game-state:" + gameContext.state()); //console.log(">map-state:" + gameContext.getMapState()); //console.log("-----------------------"); room.stopGame(); } room.setCustomStadium(SETTINGS.Maps.Dizilim); gameContext.setMapState(MapState.Dizilim); setTimeout(() => { // console.log("MATCHSTARTED haritaBelirle"); gameContext.changeState(GameState.MATCHSTARTED); //console.log("match started settimeoutda"); }, 2000); gameContext.resetMapOylama(); } else if ( gameContext.checkMapState() == MapState.RSV4 && gameContext.getMapState() != MapState.RSV4 ) { if (gameContext.oylamaAcik) { return; } gameContext.rsv4Ac(); //room.stopGame(); //room.setCustomStadium(SETTINGS.Maps.RsVs4); //gameContext.setMapState(MapState.RSV4); setTimeout(() => { gameContext.changeState(GameState.MATCHSTARTED); //console.log("match started settimeoutda"); }, 2000); gameContext.resetMapOylama(); } } tekSec() { let rp = gameContext.getPlayersByTeam(TeamEnum.RED); let bp = gameContext.getPlayersByTeam(TeamEnum.BLUE); if (bp.length == 0) { gameContext.autoSelectPlayer(TeamEnum.BLUE); room.pauseGame(false); } if (rp.length == 0) { gameContext.autoSelectPlayer(TeamEnum.RED); room.pauseGame(false); } } tamamla() { let sp = gameContext.getPlayersByTeam(TeamEnum.SPECTATORS); let rp = gameContext.getPlayersByTeam(TeamEnum.RED); let bp = gameContext.getPlayersByTeam(TeamEnum.BLUE); if (bp.length == 0) { gameContext.autoSelectPlayer(TeamEnum.BLUE); room.pauseGame(false); } if (rp.length == 0) { gameContext.autoSelectPlayer(TeamEnum.RED); room.pauseGame(false); } let diff = Math.abs(rp.length - bp.length); if (diff > 0 && sp.length <= diff) { if (bp.length > rp.length) { for (let i = 0; i < Math.max(diff, sp.length); i++) gameContext.autoSelectPlayer(TeamEnum.RED); room.pauseGame(false); } else if (rp.length > bp.length) { for (let i = 0; i < Math.max(diff, sp.length); i++) gameContext.autoSelectPlayer(TeamEnum.BLUE); room.pauseGame(false); } } } redSecebilir() { let sp = gameContext.getPlayersByTeam(TeamEnum.SPECTATORS); let rp = gameContext.getPlayersByTeam(TeamEnum.RED); let bp = gameContext.getPlayersByTeam(TeamEnum.BLUE); if ( rp.length - bp.length <= 0 && sp.length > 0 && rp.length < gameContext.getCurrentMaxPlayer() && rp.length > 0 ) { if (rp.length < bp.length) return true; else if (sp.length > 1) return true; } return false; } blueSecebilir() { let sp = gameContext.getPlayersByTeam(TeamEnum.SPECTATORS); let rp = gameContext.getPlayersByTeam(TeamEnum.RED); let bp = gameContext.getPlayersByTeam(TeamEnum.BLUE); if ( bp.length - rp.length <= 0 && sp.length > 0 && bp.length < gameContext.getCurrentMaxPlayer() && bp.length > 0 ) { if (bp.length < rp.length) return true; else if (sp.length > 1) return true; } return false; } checkAllSelectCastles() { let c = 0; gameContext.getPlayers().forEach((p) => { if (p.castleIndex != -1) c++; }); let len = 2 * parseInt(gameContext.getPlayers().length / 2); return c == Math.min(gameContext.getCurrentMaxPlayer() * 2, len); } getMapState() { return this.mapState; } getRsV6State() { return this.rsV6state; } setMapState(state) { gameContext.mapState = state; } checkMapState() { let ap = gameContext.getPlayers(); let maxPlayer = gameContext.getCurrentMaxPlayer(); if (ap.length >= maxPlayer * 2 || ap.length >= 4) { if ( (gameContext.getMapState() == MapState.Dizilim || gameContext.getMapState() == MapState.RSV4) && gameContext.mevkilerSecildi ) { return MapState.RSV4; } else { return MapState.Dizilim; } } else { return MapState.CLASSIC; } } oyEkle(atan, alan) { // console.log("ok0:"+atan.id+":"+alan.id); let banOy = gameContext.banOylar[alan.name]; if (banOy == null) { gameContext.banOylar[alan.name] = { oylar: {}, }; banOy = gameContext.banOylar[alan.name]; } // console.log("ok1"); if (banOy.oylar[atan.name]) { // console.log("'Bir Oyuncuya Birden Fazla Oy Veremezsin'"); room.sendAnnouncement( "❌ ʙɪʀ ᴏʏᴜɴᴄᴜʏᴀ sᴀᴅᴇᴄᴇ ? ᴋᴇᴢ ᴏʏ ᴠᴇʀᴇʙɪʟɪʀsɪɴ", atan.id, 0xff0000, "bold", 2 ); } else { // console.log("'Oyuncuyu Atmak İçin Oy Kullandı.'"); banOy.oylar[atan.name] = { puan: (atan.vip ? 2 : 1) * (atan.team != TeamEnum.SPECTATORS && atan.team == alan.team ? 1.5 : 1), }; room.sendAnnouncement( atan.name + " ✔️ ᴏʏᴜɴᴄᴜʏᴜ ᴀᴛᴍᴀᴋ ɪᴄɪɴ ᴏʏ ᴋᴜʟʟᴀɴᴅɪ. [#" + alan.id + "]" + alan.name + " " + gameContext.oyPuan(alan.name) + "/?", null, 0x00ff00, "normal", 2 ); } //if (!alan.oylar.find(x => x == atan.name) && !atan.oy) { // alan.oylar.push({ name: atan.name, puan: atan.team == alan.team ? 1.5 : 1 }); // atan.oy = alan; // return true; //} //return false; } oyPuan(name) { let banOy = gameContext.banOylar[name]; if (banOy == null) { return 0; } let t = 0; for (let n in banOy.oylar) { t += banOy.oylar[n].puan; } return t; } oySayisi(player) { return player.oylar.length; } oylaListele() { let s = ""; gameContext.getPlayersByTeam(TeamEnum.RED, true).forEach((v, i) => { s += " " + v.name + " : " + v.id + " "; }); room.sendAnnouncement("? " + s, null, 0xff0000, "small-bold"); s = ""; gameContext.getPlayersByTeam(TeamEnum.BLUE, true).forEach((v, i) => { s += " " + v.name + " : " + v.id + " "; }); room.sendAnnouncement("? " + s, null, 0x0080ff, "small-bold"); s = ""; gameContext.getPlayersByTeam(TeamEnum.SPECTATORS, true).forEach((v, i) => { s += " " + v.name + " : " + v.id + " "; }); room.sendAnnouncement("? " + s, null, 0x808080, "small-bold"); } secmeListele(team) { let sp = gameContext.getPlayersByTeam(TeamEnum.SPECTATORS); sp.sort((a, b) => { return a.specOrder - b.specOrder; }); let s = ""; sp.forEach((v, i) => { s += " " + v.name + " : " + v.specOrder + " "; }); if (sp.length > 0) gameContext.sendChatForTeam("?‍? " + s, team); } selectPlayerByName(message, player) { var selPlayer = gameContext.selectPlayer(message, player.team); if (selPlayer != null) { if ( gameContext.state() == GameState.MATCHSTARTED || gameContext.state() == GameState.SELECTEDPLAYER ) { if (player.team == TeamEnum.SPECTATORS) { room.sendAnnouncement( SETTINGS.Strings.General.izleyiciSecemez, player.id ); return; } //var name = message.slice("!s ".length); var team = player.team; var sp = gameContext .getPlayersByTeam(TeamEnum.SPECTATORS) .filter((x) => !x.afk); var rp = gameContext.getPlayersByTeam(TeamEnum.RED); var bp = gameContext.getPlayersByTeam(TeamEnum.BLUE); var mp = team == TeamEnum.RED ? rp : bp; var yp = team == TeamEnum.RED ? bp : rp; var maxPlayer = gameContext.getCurrentMaxPlayer(); if ( sp.length == 0 || mp.length == maxPlayer || (mp.length == yp.length && sp.length == 1) || mp.length > yp.length ) { room.sendAnnouncement( String.format(SETTINGS.Strings.General.secemez, player.name), player.id ); return; } //gameContext.selectPlayer(name, player.team); gameContext.takimDegis(selPlayer.id, team); room.pauseGame(false); gameContext.resetPlayerActivity(player); } else { room.sendAnnouncement( SETTINGS.Strings.General.secimZamaniDegil, player.id ); } } } checkSecebilmek(player) { if ( gameContext.state() == GameState.MATCHSTARTED || gameContext.state() == GameState.SELECTEDPLAYER ) { if (player.team == TeamEnum.SPECTATORS) { return false; } var team = player.team; var sp = gameContext .getPlayersByTeam(TeamEnum.SPECTATORS) .filter((x) => !x.afk); var rp = gameContext.getPlayersByTeam(TeamEnum.RED); var bp = gameContext.getPlayersByTeam(TeamEnum.BLUE); var mp = team == TeamEnum.RED ? rp : bp; var yp = team == TeamEnum.RED ? bp : rp; var maxPlayer = gameContext.getCurrentMaxPlayer(); if ( sp.length == 0 || mp.length == maxPlayer || (mp.length == yp.length && sp.length == 1) || mp.length > yp.length ) { return false; } return true; } else { return false; } } getLastTouchedPlayer() { return this.getPlayerById(this._lastTouchedPlayerId); } getPrevTouchedPlayer() { return this.getPlayerById(this._prevTouchedPlayerId); } extraStartGamefunc() { return this._extraStartGamefunc; } setLastKickBallPlayer(id) { this._prevTouchedPlayerId = this._lastTouchedPlayerId; this._lastTouchedPlayerId = id; } startMatch() { this.changeState(GameState.MATCHSTARTED); } checkTouchPlayer() { let ballPos = gameContext.ballPosition(); let touch = false; let activeTouch = false; let hizDegistirenTouch = false; let lt = gameContext.getLastTouchedPlayer(); let sameTouchPlayer; let otherTouchPlayer; let touchedPlayer; if (ballPos != null) { this.getPlayersWithPos().forEach((p, i) => { if (CollisionDetection.playerBall(ballPos, p.position)) { if (lt && p.id == lt.id) { sameTouchPlayer = p; } else { otherTouchPlayer = p; } touch = true; touchedPlayer = p; } }); } if (otherTouchPlayer) { gameContext.setLastKickBallPlayer(otherTouchPlayer.id); } else if (sameTouchPlayer) { gameContext.setLastKickBallPlayer(sameTouchPlayer.id); } if (touch) { let curBall = room.getDiscProperties(0); let curSpeed = { x: curBall.xspeed, y: curBall.yspeed }; let curDirX = gameContext.isDuruyor(curSpeed.x) ? 0 : curSpeed.x > 0 ? 1 : -1; let curDirY = gameContext.isDuruyor(curSpeed.y) ? 0 : curSpeed.y > 0 ? 1 : -1; let lastDirX = gameContext.isDuruyor(gameContext._lastBallSpeed.x) ? 0 : gameContext._lastBallSpeed.x > 0 ? 1 : -1; let lastDirY = gameContext.isDuruyor(gameContext._lastBallSpeed.y) ? 0 : gameContext._lastBallSpeed.y > 0 ? 1 : -1; if ( Math.abs(curSpeed.x - gameContext._lastBallSpeed.x) > SETTINGS.Physics.minHizDegis || Math.abs(curSpeed.y - gameContext._lastBallSpeed.y) > SETTINGS.Physics.minHizDegis ) { hizDegistirenTouch = true; } if ( curDirX != lastDirX || Math.abs(curDirX) > Math.abs(lastDirX) || curDirY != lastDirY || Math.abs(curDirY) > Math.abs(lastDirY) || gameContext.checkArkaArkayaTemas(touchedPlayer.id) ) { if ( curDirX != lastDirX || Math.abs(curDirX) > Math.abs(lastDirX) || curDirY != lastDirY || Math.abs(curDirY) > Math.abs(lastDirY) ) { activeTouch = true; } gameContext._lastBallSpeedOnTouchedPlayer = curSpeed; gameContext._prevActiveTouchedPlayerId = gameContext._lastActiveTouchedPlayerId; gameContext._lastActiveTouchedPlayerId = touchedPlayer.id; if ( gameContext._prevActiveTouchedPlayerId && gameContext._prevActiveTouchedPlayerId != gameContext._lastActiveTouchedPlayerId ) { //room.sendAnnouncement(gameContext.getPlayerById(gameContext._prevActiveTouchedPlayerId).name + " pası " + gameContext.getPlayerById(gameContext._lastActiveTouchedPlayerId).name); gameContext._prevDifferentActiveTouchedPlayerId = gameContext._prevActiveTouchedPlayerId; } } if (gameContext._tacDurum == TacDurum.DOKUNMA) { gameContext._tacDurum = TacDurum.YOK; } else if (gameContext._tacDurum == TacDurum.KULLANMA) { gameContext._tacDurum = TacDurum.DOKUNMA; } } return { touch: touch, activeTouch: activeTouch, hizDegistirenTouch: hizDegistirenTouch, }; } checkOffside() { //let prevTemas = gameContext.getPrevTemas(); //if ((prevTemas && (prevTemas.tip == TemasTipiEnum.TAC || // prevTemas.tip == TemasTipiEnum.KALEVURUSU)) || // gameContext._tacDurum != TacDurum.YOK || // gameContext._autDurum != AutDurum.YOK || // gameContext._kornerDurum != KornerDurum.YOK) { // return; //} //let lp = gameContext.getLastTouchedPlayer(); //let pp = gameContext.getPrevTouchedPlayer(); //let asisTch = lp && pp && lp.team == pp.team && lp.id != pp.id; //if (asisTch) { // //console.log("ofsayt:" + JSON.stringify(gameContext._playerPositionsOnTouched)); // //console.log("lp-pp:" + JSON.stringify(lp) + JSON.stringify(pp)); // //var touchedPlayer = players.filter(p => p.position != null && p.name == lastPlayerTouched)[0]; // let touchedPlayer = this._playerPositionsOnTouched.find(p => p.name == lp.name); // let lastTeamTouched = lp.team; // //console.log(touchedPlayer); // let ballPos = room.getBallPosition(); // let playerRadius = SETTINGS.Physics.playerRadius; // if ( // !this.isOutsideStadium(ballPos) && // touchedPlayer && // touchedPlayer.name != pp.name && // ((lastTeamTouched == TeamEnum.RED && touchedPlayer.position.x > 0) || // (lastTeamTouched == TeamEnum.BLUE && touchedPlayer.position.x < 0)) && // ((touchedPlayer.team == TeamEnum.RED && touchedPlayer.position.x > this._blueOffsideLine && touchedPlayer.position.x > gameContext.offsideBallPos.x) || // (touchedPlayer.team == TeamEnum.BLUE && touchedPlayer.position.x < this._redOffsideLine && touchedPlayer.position.x < gameContext.offsideBallPos.x)) // ) { // gameContext.offsideVARTekrarSS = { // offsideLine: touchedPlayer.team == TeamEnum.RED ? (touchedPlayer.position.x + playerRadius) : // (touchedPlayer.position.x - playerRadius), // notOffsideLine: touchedPlayer.team == TeamEnum.RED ? (gameContext._blueOffsideLine + playerRadius) : // (gameContext._redOffsideLine - playerRadius), // playerPoss: deepClone(gameContext._playerPositionsOnTouched), // ballPos: gameContext.offsideBallPos // }; // gameContext.offsideVARMacSS = { // playerPoss: [], // ballPos: ballPos // }; // let players = this.getPlayersWithPos().filter(x => !x.cezali); // for (var i = 0; i < players.length; i++) { // let p = players[i]; // gameContext.offsideVARMacSS.playerPoss // .push({ position: { x: p.position.x, y: p.position.y }, name: p.name, id: p.id, team: p.team }); // } // let realMesafe = gameContext // .getRealMesafe(Math.abs(gameContext.offsideVARTekrarSS.offsideLine - gameContext.offsideVARTekrarSS.notOffsideLine)); // room.setDiscProperties(0, { x: ballPos.x, y: ballPos.y, xspeed: 0, yspeed: 0 }); // room.pauseGame(true); // room.sendAnnouncement(String.format(SETTINGS.Strings.General.ofsayt, touchedPlayer.name), null, 0xFFFF00, "bold", 2); // room.sendAnnouncement(realMesafe + " ofsayt!", null, 0x0000FF, "bold", 2); // gameContext.resetOffsideLine(); // gameContext._ofsaytVurma = touchedPlayer.team; // gameContext._ofsaytVurmaPos = { // x: ballPos.x, y: ballPos.y // }; // setTimeout(() => { // room.sendAnnouncement("Ofsaytın VAR görüntüsünde çizgileri inceleyebilirsiniz.", null, 0x035efc, "bold", 2); // }, 500); // setTimeout(() => { // gameContext.offsideVARTekrarSS.playerPoss.forEach(p => { // room.setPlayerDiscProperties(p.id, { x: p.position.x, y: p.position.y, xspeed: 0, yspeed: 0 }); // }); // room.setDiscProperties(0, { // x: gameContext.offsideVARTekrarSS.ballPos.x, // y: gameContext.offsideVARTekrarSS.ballPos.y, xspeed: 0, yspeed: 0 // }); // gameContext.offsideRedDiscIds.forEach(i => { // room.setDiscProperties(i, { x: gameContext.offsideVARTekrarSS.offsideLine, xspeed: 0, yspeed: 0 }); // }); // gameContext.offsideBlueDiscIds.forEach(i => { // room.setDiscProperties(i, { x: gameContext.offsideVARTekrarSS.notOffsideLine, xspeed: 0, yspeed: 0 }); // }); // }, 1000); // let lastActive = gameContext.getLastActiveTemas(); // if (lastActive) { // lastActive.ofsayt = true; // if (touchedPlayer.id == lastActive.playerId) { // gameContext.sendToSuperAdmins(String.format("Ofsayt({0})", touchedPlayer.name), lastActive.team); // } // let prevActiveTemas = gameContext.getLastActiveTemasExceptLastTemas(); // if (prevActiveTemas && prevActiveTemas.tip == TemasTipiEnum.PAS) { // prevActiveTemas.ofsayt = true; // let poPlayer = gameContext.getPlayerById(prevActiveTemas.playerId); // poPlayer = poPlayer ? poPlayer.name : ""; // gameContext.sendToSuperAdmins(String.format("Pas Ofsayt({0})", poPlayer), lastActive.team); // } // if (lastActive.tip == TemasTipiEnum.KURTARMA && // (lastActive.kurtarma.tip == KurtarmaTipiEnum.BASLANGIC || lastActive.kurtarma.tip == KurtarmaTipiEnum.DEVAMEDEN)) { // lastActive.kurtarma.tip = KurtarmaTipiEnum.BITEN; // let kurtartmaP = gameContext.getPlayerById(lastActive.playerId); // kurtartmaP = kurtartmaP ? kurtartmaP.name : ""; // gameContext.sendToSuperAdmins(String.format("Kurtarma Bitti({0})", kurtartmaP), lastActive.team); // } // } // setTimeout(() => { // let ballPos = (gameContext.offsideVARMacSS == null || gameContext.offsideVARMacSS.ballPos == null) ? // room.getBallPosition() : gameContext.offsideVARMacSS.ballPos; // let uzaklas = 300; // if (ballPos) { // if (gameContext._ofsaytVurma == TeamEnum.RED) { // gameContext.getPlayersByTeamWithPos(TeamEnum.RED) // .forEach(p => { // let pos = (gameContext.offsideVARMacSS == null || gameContext.offsideVARMacSS.playerPoss == null) ? // null : gameContext.offsideVARMacSS.playerPoss.find(x => x.name == p.name && x.team == p.team); // pos = pos == null ? p.position : pos.position; // if (pos.x > (ballPos.x - uzaklas)) { // room.setPlayerDiscProperties(p.id, { // x: (ballPos.x - uzaklas), // xspeed: 0, // yspeed: 0 // }); // } // else { // room.setPlayerDiscProperties(p.id, { // x: pos.x, // y: pos.y, // xspeed: 0, // yspeed: 0 // }); // } // }); // } // else { // gameContext.getPlayersByTeamWithPos(TeamEnum.BLUE) // .forEach(p => { // let pos = (gameContext.offsideVARMacSS == null || gameContext.offsideVARMacSS.playerPoss == null) ? // null : gameContext.offsideVARMacSS.playerPoss.find(x => x.name == p.name && x.team == p.team); // pos = pos == null ? p.position : pos.position; // if (pos.x < (ballPos.x + uzaklas)) { // room.setPlayerDiscProperties(p.id, { // x: (ballPos.x + uzaklas), // xspeed: 0, // yspeed: 0 // }) // } // else { // room.setPlayerDiscProperties(p.id, { // x: pos.x, // y: pos.y, // xspeed: 0, // yspeed: 0 // }); // } // }); // } // room.setDiscProperties(0, { // x: ballPos.x, // y: ballPos.y, // xspeed: 0, // yspeed: 0 // }); // gameContext.offsideRedDiscIds.forEach(i => { // room.setDiscProperties(i, { // x: gameContext.offsideLineDiscX, // xspeed: 0, // yspeed: 0 // }); // }); // gameContext.offsideBlueDiscIds.forEach(i => { // room.setDiscProperties(i, { // x: gameContext.offsideLineDiscX, // xspeed: 0, // yspeed: 0 // }); // }); // } // room.pauseGame(false); // }, 5000); // } //} } updatePenRedTeam() { gameContext.penRedTeam = gameContext.penRedTeam.filter((x) => gameContext.getPlayerById(x.id) ); if (gameContext.penRedTeam.length == 0) { return false; } let gk = gameContext.getPlayerById(gameContext.penRedGK.id); if (!gk) { gameContext.penRedGK = gameContext.penRedTeam[ Math.floor(Math.random() * gameContext.penRedTeam.length) ]; } return true; } updatePenBlueTeam() { gameContext.penBlueTeam = gameContext.penBlueTeam.filter((x) => gameContext.getPlayerById(x.id) ); if (gameContext.penBlueTeam.length == 0) { return false; } let gk = gameContext.getPlayerById(gameContext.penBlueGK.id); if (!gk) { gameContext.penBlueGK = gameContext.penBlueTeam[ Math.floor(Math.random() * gameContext.penBlueTeam.length) ]; } return true; } penTeamVictory(scores) { gameContext.changeState(-1); clearTimeout(timeoutPenGol); clearTimeout(timeoutPenSure); clearTimeout(timeoutStartPen); gameContext.penRedTeam.forEach((v, i) => { setTimeout(() => { gameContext.takimDegis(v.id, TeamEnum.RED); }, 1); }); gameContext.penBlueTeam.forEach((v, i) => { setTimeout(() => { gameContext.takimDegis(v.id, TeamEnum.BLUE); }, 1); }); gameContext.getPlayers().forEach((v, i) => { v.penKullandi = false; }); gameContext._extraStadiumChangeGamefunc = () => {}; if (gameContext.isStop) { room.startGame(); gameContext._extraStartGamefunc = () => { gameContext._extraStartGamefunc = () => {}; room.stopGame(); }; } else { room.stopGame(); } this._extraStopGamefunc = () => { gameContext._extraStopGamefunc = () => {}; room.setTimeLimit(SETTINGS.Room.timeLimit); this.penRedTeam = []; this.penBlueTeam = []; this.penRedGK = null; this.penBlueGK = null; this.penKullanTeam = 0; this.penRedGoal = 0; this.penBlueGoal = 0; this.penRedAtma = 0; this.penBlueAtma = 0; setTimeout(() => { gameContext.lockGameStart = false; gameContext.lockGameStop = false; gameContext.lockTeamChange = false; gameContext.teamVictory(scores); }, 300); }; } siradakiRedPenOyuncusu() { return gameContext.penRedTeam[ gameContext.penRedAtma % gameContext.penRedTeam.length ]; } siradakiBluePenOyuncusu() { return gameContext.penBlueTeam[ gameContext.penBlueAtma % gameContext.penBlueTeam.length ]; } checkPenStriker() { if (gameContext.getPlayersByTeam(TeamEnum.RED).length == 0) { if (gameContext.penKullanTeam == TeamEnum.RED) { let vuracak = gameContext.siradakiRedPenOyuncusu(); if (vuracak == null) { gameContext.penRedTeam.forEach((v, i) => { v.penKullandi = false; }); } vuracak = gameContext.siradakiRedPenOyuncusu(); gameContext.penStriker = vuracak; gameContext.takimDegis(vuracak.id, TeamEnum.RED); } else if (gameContext.penKullanTeam == TeamEnum.BLUE) { let vuracak = gameContext.siradakiBluePenOyuncusu(); if (vuracak == null) { gameContext.penBlueTeam.forEach((v, i) => { v.penKullandi = false; }); } vuracak = gameContext.siradakiBluePenOyuncusu(); gameContext.penStriker = vuracak; gameContext.takimDegis(vuracak.id, TeamEnum.RED); } } } initPen() { gameContext.lockGameStart = true; gameContext.lockGameStop = true; gameContext.lockTeamChange = true; gameContext.getPlayers(true).forEach((p) => { p.cizgi = false; }); gameContext.tacUzaklasti = false; gameContext._disariDurum = -1; gameContext._disariTeam = -1; gameContext.resetMevkiCezas(); gameContext.mevkiTespitCount = 1; gameContext.mevkiDongu = 0; gameContext.kayipZaman = 0; gameContext.kayipZamanBildirim = false; //console.log("reset: " + gameContext.getMapState()); gameContext.getPlayers(true).forEach((p) => { if (p.dizilimTimeout) { clearTimeout(p.dizilimTimeout); p.dizilimTimeout = null; } }); gameContext.resetOffsideLine(); gameContext.resetPlayerActivities(); //gameContext.resetToplaOynama(); gameContext.resetCizgi(); gameContext.tacDegis = false; gameContext.hukmenGolTeam = 0; gameContext.penRedTeam = gameContext.getPlayersByTeam(TeamEnum.RED); gameContext.penBlueTeam = gameContext.getPlayersByTeam(TeamEnum.BLUE); let prGK = gameContext.penRedTeam.find((x) => x.avatar == 1); let pbGK = gameContext.penBlueTeam.find((x) => x.avatar == 1); gameContext.penRedGK = prGK ? prGK : gameContext.penRedTeam[ Math.floor(Math.random() * gameContext.penRedTeam.length) ]; gameContext.penBlueGK = pbGK ? pbGK : gameContext.penBlueTeam[ Math.floor(Math.random() * gameContext.penBlueTeam.length) ]; gameContext.penStriker = null; gameContext.mapState = MapState.PENALTY; gameContext.penKullanTeam = TeamEnum.RED; gameContext.penaltyState = PenaltyState.NONE; gameContext.changeState(-1); gameContext.getPlayers().forEach((v, i) => { setTimeout(() => { gameContext.takimDegis(v.id, TeamEnum.SPECTATORS); }, 500); }); gameContext._extraStopGamefunc = () => { gameContext._extraStopGamefunc = () => {}; room.setTimeLimit(0); room.setCustomStadium(SETTINGS.Maps.Penalty); gameContext._extraStadiumChangeGamefunc = () => { gameContext._extraStadiumChangeGamefunc = () => {}; gameContext.changeState(GameState.PENALTY); setTimeout(() => { // console.log("initPen"); room.startGame(); }, 4000); }; }; room.stopGame(); } updatePen() { if (gameContext.penaltyState == PenaltyState.NONE) { let vuracak, gk; if (gameContext.penKullanTeam == TeamEnum.RED) { vuracak = gameContext.siradakiRedPenOyuncusu(); gameContext.penStriker = vuracak; gk = gameContext.penBlueGK; gameContext.setToDefaultPlayerColor(); } else { vuracak = gameContext.siradakiBluePenOyuncusu(); gameContext.penStriker = vuracak; gk = gameContext.penRedGK; gameContext.setToDefaultPlayerColor(true); } room.stopGame(); gameContext._extraStopGamefunc = () => { gameContext._extraStopGamefunc = () => {}; gameContext.penaltyState = PenaltyState.SECILDI; gameContext.takimDegis(gk.id, TeamEnum.BLUE); gameContext.takimDegis(vuracak.id, TeamEnum.RED); }; gameContext.penaltyState = -1; timeoutStartPen = setTimeout(() => { room.startGame(); }, 1000); } else if (gameContext.penaltyState == PenaltyState.SECILDI) { let ballPos = room.getBallPosition(); if (ballPos.x > 10) { timeoutPenGol = setTimeout(() => { clearTimeout(timeoutPenGol); clearTimeout(timeoutPenSure); if (gameContext.penaltyState == PenaltyState.VURMA) { if (gameContext.penKullanTeam == TeamEnum.RED) { gameContext.penRedAtma++; } else { gameContext.penBlueAtma++; } room.sendAnnouncement(gameContext.penStriker.name + " ??????? !"); gameContext.penStriker.penKullandi = true; gameContext.penaltyState = PenaltyState.KULLANDI; } }, 4000); } timeoutPenSure = setTimeout(() => { clearTimeout(timeoutPenGol); clearTimeout(timeoutPenSure); if (gameContext.penaltyState == PenaltyState.VURMA) { if (gameContext.penKullanTeam == TeamEnum.RED) { gameContext.penRedAtma++; } else { gameContext.penBlueAtma++; } room.sendAnnouncement(gameContext.penStriker.name + " ??????? !"); room.sendAnnouncement(SETTINGS.Strings.General.penSureDoldu); gameContext.penStriker.penKullandi = true; gameContext.penaltyState = PenaltyState.KULLANDI; } }, 12000); gameContext.penaltyState = PenaltyState.VURMA; } else if (gameContext.penaltyState == PenaltyState.VURMA) { //console.log("penalty state: vurma"); } else if (gameContext.penaltyState == PenaltyState.KULLANDI) { clearTimeout(timeoutPenGol); clearTimeout(timeoutPenSure); if (gameContext.getPlayersByTeam(TeamEnum.RED).length > 0) { gameContext.takimDegis( gameContext.getPlayersByTeam(TeamEnum.RED)[0].id, TeamEnum.SPECTATORS ); } if (gameContext.getPlayersByTeam(TeamEnum.BLUE).length > 0) { gameContext.takimDegis( gameContext.getPlayersByTeam(TeamEnum.BLUE)[0].id, TeamEnum.SPECTATORS ); } room.sendAnnouncement( gameContext.penRedGoal + " - " + gameContext.penBlueGoal ); if ( gameContext.penRedAtma == gameContext.penBlueAtma && gameContext.penRedAtma >= 6 && gameContext.penRedGoal != gameContext.penBlueGoal ) { this.penTeamVictory({ red: gameContext.penRedGoal, blue: gameContext.penBlueGoal, }); } else { if (gameContext.penKullanTeam == TeamEnum.RED) { gameContext.penKullanTeam = TeamEnum.BLUE; } else { gameContext.penKullanTeam = TeamEnum.RED; } gameContext.penaltyState = PenaltyState.NONE; //setTimeout(() => { room.startGame(); }, 1000); } } } checkMissingBall() { let ballPos = room.getBallPosition(); if (ballPos) { let ballR = 10; let absX = Math.abs(ballPos.x); let absY = Math.abs(ballPos.y); let dirX = absX == 0 ? 0 : ballPos.x / absX; let dirY = absY == 0 ? 0 : ballPos.y / absY; let newX = ballPos.x; let newY = ballPos.y; if (absX > gameContext.getStadMeasure().stadiumWidth + 335) { newX = dirX * (gameContext.getStadMeasure().stadiumWidth - ballR); } if (absY > gameContext.getStadMeasure().stadiumHeight + 150) { newY = dirY * (gameContext.getStadMeasure().stadiumHeight - ballR); } if ( absX > gameContext.getStadMeasure().stadiumWidth + 335 || absY > gameContext.getStadMeasure().stadiumHeight + 150 ) { room.setDiscProperties(0, { x: newX, y: newY, xspeed: 0, yspeed: 0 }); } } } update() { //gameContext.updateAnimKelime(); if (gameContext.getMapState() != MapState.Dizilim) { gameContext .getPlayers(true) .filter((x) => x.cezali) .forEach((p, i) => { gameContext.resetPlayerActivity(p); }); } if (gameContext.mapState == MapState.Dizilim) { gameContext.checkCollisionCastles(); if (!this._isPause) { let rp = gameContext.getPlayersByTeam(TeamEnum.RED); let bp = gameContext.getPlayersByTeam(TeamEnum.BLUE); if (!gameContext.redSecebilir() || gameContext.susturmakIstatistik) { rp.forEach((v, i) => { gameContext.resetPlayerActivity(v); }); } if (!gameContext.blueSecebilir() || gameContext.susturmakIstatistik) { bp.forEach((v, i) => { gameContext.resetPlayerActivity(v); }); } } } if (this.state() == GameState.SELECTEDPLAYER) { gameContext._extraUpdateFunc(); gameContext.checkPlayerActivities(); let scores = room.getScores(); if ( gameContext.getMapState() == MapState.RSV4 || gameContext.getMapState() == MapState.RSv6 ) { gameContext.checkMissingBall(); //let ballDisc = room.getDiscProperties(0); //if (ballDisc) { // if (animYaniyor) { // if (gameContext.isSutYanma(Math.abs(ballDisc.xspeed)) // && gameContext.isSutYanma(Math.abs(ballDisc.yspeed))) { // resetYanmaAnim(); // } // } //} if (scores && !gameContext.macSonu) { if ( (scores.time >= gameContext.timeLimit + gameContext.kayipZaman && gameContext.kayipZamanBildirim) || Math.abs(scores.red - scores.blue) > 4 ) { gameContext.macSonu = true; gameContext.oyuncuSurelerHesapla(); if (scores.blue == 0) { let p1 = gameContext .getPlayers() .find((x) => x.avatar == 1 && x.team == TeamEnum.RED); let p3 = gameContext .getPlayers() .find((x) => x.avatar == 3 && x.team == TeamEnum.RED); if (p1) { gameContext.addCSToSta(p1.name); } if (p3) { gameContext.addDMToSta(p3.name); } } if (scores.red == 0) { let p1 = gameContext .getPlayers() .find((x) => x.avatar == 1 && x.team == TeamEnum.BLUE); let p3 = gameContext .getPlayers() .find((x) => x.avatar == 3 && x.team == TeamEnum.BLUE); if (p1) { gameContext.addCSToSta(p1.name); } if (p3) { gameContext.addDMToSta(p3.name); } } if (scores.red == scores.blue) { gameContext.initPen(); } else { gameContext.lockGameStop = true; gameContext._extraStopGamefunc = () => { gameContext._extraStopGamefunc = () => {}; gameContext.lockGameStop = false; gameContext.teamVictory( scores, !( scores.time >= gameContext.timeLimit + gameContext.kayipZaman && gameContext.kayipZamanBildirim ) ); }; // console.log("-----------------------"); //console.log("stop: update-end"); //console.log(">game-state:" + gameContext.state()); //console.log(">map-state:" + gameContext.getMapState()); //console.log("-----------------------"); room.stopGame(); } return; } else if ( scores.time >= gameContext.timeLimit && !gameContext.kayipZamanBildirim ) { gameContext.kayipZamanBildirim = true; room.sendAnnouncement( "ᴍᴀᴄ ʙɪᴛᴛɪ,ʙɪᴛɪs sᴜʀᴇsɪ: " + gameContext.getTimeText( gameContext.timeLimit + gameContext.kayipZaman ), null, 0xff00bb, "bold", 2 ); } } if ( gameContext.getMapState() == MapState.RSv6 || gameContext.getMapState() == MapState.RSV4 ) { // gameContext.updateMevkiCeza(); // gameContext.checkMevkiCeza(); } gameContext.topHizHesapla(); let touch = gameContext.checkTouchPlayer(); let player = gameContext.getLastTouchedPlayer(); if ( gameContext.hukmenGolTeam == 0 && !gameContext.isOffside() && (gameContext.getMapState() == MapState.RSv6 || gameContext.getMapState() == MapState.RSV4) ) { gameContext.temasEkle( touch.touch, false, null, touch.activeTouch, touch.hizDegistirenTouch ); } if (gameContext._ofsaytVurma != 0) { let ballPos = room.getBallPosition(); if (ballPos) { let fx = Math.abs(gameContext._ofsaytVurmaPos.x - ballPos.x); let fy = Math.abs(gameContext._ofsaytVurmaPos.y - ballPos.y); if (fx + fy > SETTINGS.Physics.ofsaytSurme) { gameContext.showOfsaytKullandi(); gameContext._ofsaytVurma = 0; } } } if (touch.touch) { //gameContext.vurusEkle(player, false); //if (gameContext.checkTopSurme(gameContext.getLastTouchedPlayer(), room.getBallPosition())) { // gameContext.checkOfsaytVurma(gameContext.getLastTouchedPlayer()); //} gameContext._lastBallPositionIfHit = room.getBallPosition(); gameContext._lastPlayerPositionIfHit = gameContext.getLastTouchedPlayer().position; gameContext.checkOffside(); // console.log("önce:" + JSON.stringify(gameContext._playerPositionsOnTouched)); this.updateOffsideLine(); // console.log("sonra:" + JSON.stringify(gameContext._playerPositionsOnTouched)); gameContext.toplaOynamaEkle(); gameContext.checkAutState(); gameContext.checkKornerState(); } this.checkCKandTouch(); this.checkKornerCizgi(); this.checkTacCizgi(); this.checkAutCizgi(); gameContext.checkTacDokunmas(); let disc = room.getDiscProperties(0); if (disc) { gameContext._lastBallSpeed = { x: disc.xspeed, y: disc.yspeed }; gameContext._lastBallPos = { x: disc.x, y: disc.y }; } } } else if (this.state() == GameState.PENALTY) { gameContext.updatePen(); } } selectPlayer(name, team) { let specs = this.getPlayersByTeam(TeamEnum.SPECTATORS).filter( (x) => !x.afk ); let swPlayers = []; let selPlayer = null; if (specs.length == 0) return null; specs.forEach((v, i) => { if (v.name.toLowerCase().startsWith(name.toLowerCase())) swPlayers.push(v); }); if (swPlayers.length == 1) { selPlayer = swPlayers[0]; } else if (swPlayers.length == 0) { selPlayer = specs.sort(function (a, b) { return similarity(a.name, name) < similarity(b.name, name) ? 1 : -1; })[0]; selPlayer = similarity(selPlayer.name, name) > 0.5 ? selPlayer : null; } else { selPlayer = swPlayers.sort(function (a, b) { return similarity(a.name, name) < similarity(b.name, name) ? 1 : -1; })[0]; } return selPlayer; } checkPlayerActivities() { gameContext .getPlayers() .filter((x) => x.team != TeamEnum.SPECTATORS) .forEach((v, i) => { //console.log(new Date().getTime() - v.actTime + " : " + v.actTime); this.checkPlayerActivity(v); }); } checkPlayerActivity(p) { if (!gameContext.alfaTest) { let t = new Date().getTime() - p.actTime; if (t > 30000) { if (gameContext.getMapState() == MapState.Dizilim) { room.kickPlayer(p.id, "Oyuncu seçmediniz", false); } else if (!p.cezali) { room.kickPlayer(p.id, "AFK", false); } } else if (p.actUyari && t <= 27000 && t >= 26000) { if (gameContext.getMapState() == MapState.Dizilim) { room.sendAnnouncement( p.name + " oyuncu seçmezsen " + Math.round((30000 - t) / 1000) + " saniye sonra atılacaksın!" ); } else if (!p.cezali) { room.sendAnnouncement( String.format( SETTINGS.Strings.General.saniyedeAtilmak, p.name, Math.round((30000 - t) / 1000) ) ); } p.actUyari = false; } } } resetPlayerActivities() { gameContext .getPlayers() .filter((x) => x.team != TeamEnum.SPECTATORS) .forEach((v, i) => { this.resetPlayerActivity(v); }); } resetPlayerActivity(player) { var pi = gameContext.getPlayerById(player.id); if (pi) { pi.actTime = new Date().getTime(); pi.actUyari = true; } } autoSelectPlayer(team) { var specs = this.getPlayersByTeam(TeamEnum.SPECTATORS); if (specs.length == 0) return; gameContext.takimDegis( specs[Math.floor(Math.random() * specs.length)].id, team ); } autoSelectPlayerByRedToSpec() { var red = this.getPlayersByTeam(TeamEnum.RED); if (red.length < 2) return; gameContext.takimDegis( red[Math.floor(Math.random() * red.length)].id, TeamEnum.SPECTATORS ); } autoSelectPlayerByBlueToSpec() { var blue = this.getPlayersByTeam(TeamEnum.BLUE); if (blue.length < 2) return; gameContext.takimDegis( blue[Math.floor(Math.random() * blue.length)].id, TeamEnum.SPECTATORS ); } getPlayerByName(name) { return this.getPlayers(true).find((x) => x.name == name); } getPlayersByTeam(team, afk) { return this.getPlayers(afk).filter((x) => x.team == team); } getPlayersByTeamWithPos(team, afk) { return this.getPlayers(afk).filter((x) => x.position && x.team == team); } isOutsideStadium(ballPosition) { return ( ballPosition.x > gameContext.getStadMeasure().stadiumWidth || ballPosition.x < -gameContext.getStadMeasure().stadiumWidth || ballPosition.y > gameContext.getStadMeasure().stadiumHeight || ballPosition.y < -gameContext.getStadMeasure().stadiumHeight ); } setBallColor(c) { room.setDiscProperties(0, { color: c }); } setPlayersNotTouch(team) { /* gameContext.getPlayersByTeamWithPos(team).forEach(p => { let teamCMask = team == TeamEnum.RED ? room.CollisionFlags.blue : room.CollisionFlags.red; if (team == 0) { room.setDiscProperties(0, { cMask: room.CollisionFlags.all }); } else { // room.setDiscProperties(0, { cMask: teamCMask || room.CollisionFlags.wall || room.CollisionFlags.redKO || room.CollisionFlags.blueKO }); } });*/ if (team != 0) { room.setDiscProperties(0, { xspeed: 0, yspeed: 0 }); } else { room.setDiscProperties(0, { cMask: 63 }); } gameContext.tacHayaletTakim = team; } checkTacUzaklas(temas = false) { if (gameContext._disariTeam == 0) { return; } let ballPos = room.getBallPosition(); let takim = gameContext._disariTeam == TeamEnum.RED ? TeamEnum.BLUE : TeamEnum.RED; let tacCizgi = gameContext.getStadMeasure().tacCizgi; gameContext.tacUzaklasti = false; gameContext .getPlayersByTeamWithPos(takim) .filter((x) => !x.cezali) .forEach((v, i) => { if ( Math.abs(ballPos.x - v.position.x) < gameContext.getStadMeasure().tacCizgiFark || temas ) { if (ballPos.y < 0) { if (v.position.y < -tacCizgi) { room.setPlayerDiscProperties(v.id, { y: -(tacCizgi - 50) }); } } else { if (v.position.y > tacCizgi) { room.setPlayerDiscProperties(v.id, { y: tacCizgi - 50 }); } } } }); setTimeout(() => { if (gameContext._disariTeam != 0) { gameContext.tacUzaklasti = true; } }, 1000); } checkAutUzaklas(temas = false) { let ballPos = room.getBallPosition(); if (!ballPos) { return; } let takim = gameContext._disariTeam == TeamEnum.RED ? TeamEnum.BLUE : TeamEnum.RED; gameContext .getPlayersByTeamWithPos(takim) .filter((x) => !x.cezali) .forEach((v, i) => { if ( Math.abs(v.position.y) < gameContext.getStadMeasure().cezaSahaCizgiY || temas ) { if (ballPos.x < 0) { if (v.position.x < -gameContext.getStadMeasure().cezaSahaCizgiX) { room.setPlayerDiscProperties(v.id, { x: -gameContext.getStadMeasure().cezaSahaCizgiX + 50, }); } } else { if (v.position.x > gameContext.getStadMeasure().cezaSahaCizgiX) { room.setPlayerDiscProperties(v.id, { x: gameContext.getStadMeasure().cezaSahaCizgiX - 50, }); } } } }); } checkCKandTouch() { //var ballPosition = room.getBallPosition(); //if (this.isOutsideStadium(ballPosition)) { // if (gameContext.tacDegis && Math.abs(ballPosition.x - gameContext.tacDegisPos.x) > 280) { // room.setDiscProperties(0, { // xspeed: 0, yspeed: 0 // }); // gameContext.tacDegis = false; // let lastTeamTouched = gameContext.tacDegisTakim; // gameContext._disariDurum = DisariDurum.TAC; // gameContext._disariTeam = lastTeamTouched == TeamEnum.RED ? TeamEnum.BLUE : TeamEnum.RED; // gameContext.getPlayers(true).forEach(p => { // p.cizgi = false; // }); // gameContext.resetCizgiState(); // gameContext._tacDurum = TacDurum.TAC; // gameContext._tacTakim = lastTeamTouched; // room.sendAnnouncement(lastTeamTouched == TeamEnum.RED ? SETTINGS.Strings.General.maviTac : SETTINGS.Strings.General.redTac); // //room.setDiscProperties(0, { cMask: room.CollisionFlags.wall }); // gameContext.setBallColor(gameContext.getBallColorInv(lastTeamTouched)); // gameContext.setPlayersNotTouch(lastTeamTouched); // gameContext.isFillBall = true; // room.setDiscProperties(0, { x: gameContext.tacDegisPos.x, y: gameContext.tacDegisPos.y }); // setTimeout(() => { // let disc = room.getBallPosition(); // gameContext.tacDegis = true; // gameContext.tacDegisTakim = lastTeamTouched == TeamEnum.RED ? TeamEnum.BLUE : TeamEnum.RED; // gameContext.tacDegisPos = { x: disc.x, y: disc.y }; // }, 500); // gameContext.checkTacUzaklas(); // gameContext.resetOffsideLine(); // } // if (!this._isBallOutsideStadium) { // let lastActive = gameContext.getLastActiveTemas(); // if (lastActive && lastActive.tip == TemasTipiEnum.KURTARMA && // (lastActive.kurtarma.tip == KurtarmaTipiEnum.BASLANGIC || lastActive.kurtarma.tip == KurtarmaTipiEnum.DEVAMEDEN)) { // lastActive.kurtarma.tip = KurtarmaTipiEnum.BITEN; // let kurtartmaP = gameContext.getPlayerById(lastActive.playerId); // kurtartmaP = kurtartmaP ? kurtartmaP.name : ""; // gameContext.sendToSuperAdmins(String.format("Kurtarma Bitti({0})", kurtartmaP), lastActive.team); // } // gameContext.disariCikanTime = room.getScores().time; // if (ballPosition.y >= -gameContext.getStadMeasure().kaleY && ballPosition.y <= gameContext.getStadMeasure().kaleY) // return; // var lp = gameContext.getLastTouchedPlayer(); // if (lp == null) // return; // let lastTeamTouched = lp.team; // gameContext._disariTeam = lastTeamTouched == TeamEnum.RED ? TeamEnum.BLUE : TeamEnum.RED; // resetYanmaAnim(); // room.setDiscProperties(0, { // xspeed: 0, yspeed: 0 // }); // if (ballPosition.x > gameContext.getStadMeasure().stadiumWidth && lastTeamTouched == TeamEnum.RED || ballPosition.x < -gameContext.getStadMeasure().stadiumWidth && lastTeamTouched == TeamEnum.BLUE) { // room.sendAnnouncement(SETTINGS.Strings.General.aut); // gameContext._disariDurum = DisariDurum.AUT; // gameContext.resetCizgiState(); // gameContext._autDurum = AutDurum.AUT; // gameContext._autTakim = lastTeamTouched; // gameContext.setBallColor(gameContext.getBallColorInv(lastTeamTouched)); // gameContext.setPlayersNotTouch(lastTeamTouched); // gameContext.isFillBall = true; // room.setDiscProperties(0, { // x: gameContext.getStadMeasure().autNoktaX * ballPosition.x / Math.abs(ballPosition.x), // y: gameContext.getStadMeasure().autNoktaY * ballPosition.y / Math.abs(ballPosition.y) // }); // gameContext.checkAutUzaklas(); // } // else if (ballPosition.x > gameContext.getStadMeasure().stadiumWidth && lastTeamTouched == TeamEnum.BLUE || ballPosition.x < -gameContext.getStadMeasure().stadiumWidth && lastTeamTouched == TeamEnum.RED) { // room.sendAnnouncement(SETTINGS.Strings.General.korner); // if (lastTeamTouched == TeamEnum.RED) { // this.ckBlueSay++; // } // else { // this.ckRedSay++; // } // gameContext._disariDurum = DisariDurum.KORNER; // gameContext.resetCizgiState(); // gameContext._kornerDurum = KornerDurum.KORNER; // gameContext._kornerTakim = lastTeamTouched; // gameContext.setBallColor(gameContext.getBallColorInv(lastTeamTouched)); // gameContext.setPlayersNotTouch(lastTeamTouched); // gameContext.isFillBall = true; // room.setDiscProperties(0, { // x: gameContext.getStadMeasure().kornerNoktaX * ballPosition.x / Math.abs(ballPosition.x), // y: gameContext.getStadMeasure().kornerNoktaY * ballPosition.y / Math.abs(ballPosition.y) // }); // } // else { // gameContext._disariDurum = DisariDurum.TAC; // gameContext.resetCizgiState(); // gameContext._tacDurum = TacDurum.TAC; // gameContext._tacTakim = lastTeamTouched; // room.sendAnnouncement(lastTeamTouched == TeamEnum.RED ? SETTINGS.Strings.General.maviTac : SETTINGS.Strings.General.redTac); // //room.setDiscProperties(0, { cMask: room.CollisionFlags.wall }); // gameContext.getPlayers(true).forEach(p => { // p.cizgi = false; // }); // gameContext.setBallColor(gameContext.getBallColorInv(lastTeamTouched)); // gameContext.setPlayersNotTouch(lastTeamTouched); // gameContext.isFillBall = true; // room.setDiscProperties(0, { // y: gameContext.getStadMeasure().tacNoktaY * ballPosition.y / Math.abs(ballPosition.y) // }); // setTimeout(() => { // let disc = room.getBallPosition(); // gameContext.tacDegis = true; // gameContext.tacDegisTakim = lastTeamTouched == TeamEnum.RED ? TeamEnum.BLUE : TeamEnum.RED; // gameContext.tacDegisPos = { x: disc.x, y: disc.y }; // }, 500); // gameContext.checkTacUzaklas(); // } // this._isBallOutsideStadium = true; // gameContext.resetOffsideLine(); // } //} //else { // gameContext._disariDurum = -1; // gameContext._disariTeam = -1; // if (this._isBallOutsideStadium) { // let scores = room.getScores(); // if (scores && !gameContext.kayipZamanBildirim) { // this.kayipZaman += scores.time - this.disariCikanTime; // } // } // this.tacDegis = false; // this._isBallOutsideStadium = false; // if (gameContext.isFillBall) { // gameContext.setBallColor(0xFFFFFF); // gameContext.setPlayersNotTouch(0); // gameContext.isFillBall = false; // } //} } ballPosition() { return room.getBallPosition(); } changeState(s) { this._state = s; } state() { return this._state; } getPlayerInformationInTheGame() { return this.getPlayers().filter((x) => x.team != TeamEnum.SPECTATORS); } getPlayerById(id) { if (id == null) return null; return this.getPlayers(true).find((x) => x.id == id); } getPlayers(afk) { var roomPlayers = room.getPlayerList(); var newPlayerInformations = []; roomPlayers.forEach((v, i) => { var p = gameContext._playerInformation.find((x) => x.id == v.id); if (p) { p.id = v.id; p.name = v.name; p.position = v.position; p.team = v.team; p.admin = v.admin; newPlayerInformations.push(p); } }); //gameContext._playerInformation = newPlayerInformations; if (afk) return newPlayerInformations; else return newPlayerInformations.filter((x) => !x.afk); } getPlayersWithPos(afk) { return this.getPlayers(afk).filter((x) => x.position != null); } addPlayer(p) { if (p.name == "") { room.kickPlayer(p.id, "Boş isimle odaya giremezsiniz!", false); return false; } else if (p.name != p.name.trim()) { room.kickPlayer(p.id, "İsminin sağına soluna boşluk koyamazsın!", false); return false; } else if ( room.getPlayerList().filter((x) => x.name == p.name).length > 1 || SETTINGS.Room.playerName == p.name ) { room.kickPlayer(p.id, SETTINGS.Strings.General.sameNameKickNote, false); return false; } else if ( !gameContext.alfaTest && gameContext.getPlayers(true).find((x) => x.auth == p.auth) ) { room.kickPlayer(p.id, SETTINGS.Strings.General.sameTabKickNote, true); return false; } else if (room.getPlayerList().length == SETTINGS.Room.maxPlayers - 1) { let hasKaliciAdmin = gameContext .getPlayers(true) .find((x) => x.admin && x.kaliciAdmin); let store = gameContext.getUyeStore(); if ( hasKaliciAdmin || gameContext.isAdminOlur(p, store) || gameContext.isBoosterOlur(p, store) || gameContext.isVipOlur(p, store) ) { //... } else { room.kickPlayer( p.id, "18.kişi admin ve vipler için ayrılmıştır.", false ); return false; } } else if (room.getPlayerList().length == SETTINGS.Room.maxPlayers) { let hasKaliciAdmin = gameContext .getPlayers(true) .find((x) => x.admin && x.kaliciAdmin); let store = gameContext.getUyeStore(); if (hasKaliciAdmin || gameContext.isAdminOlur(p, store)) { //... } else { room.kickPlayer(p.id, "18.kişi adminler için ayrılmıştır.", false); return false; } } this._playerInformation.push(new PlayerInfo(p)); return true; } removePlayer(p) { gameContext.getPlayers().forEach((v, i) => { v.oylar = v.oylar.filter((x) => x != p.name); }); this._playerInformation = this._playerInformation.filter( (x) => x.id != p.id ); } }; var PlayerInfo = class PlayerInfo { constructor(player) { this.id = player.id; this.name = player.name; this.auth = player.auth; this.conn = player.conn; this.girisTime = new Date().getTime(); this.sonGirdigiZaman = 0; this.oynadigiSure = 0; this.kornerCizgiTimes = 0; this.autCizgiTimes = 0; this.tacCizgiTimes = 0; this.cizgiSayisi = 0; this.specOrder = 0; this.kesintisizMesajSayisi = 0; this.actTime = new Date().getTime(); this.actUyari = true; this.sus = false; this.susTimeout = null; this.susDk = 0; this.oylar = []; this.oy = null; this.afk = false; this.name = player.name; this.avatar = 0; this.castleIndex = -1; this.team = -1; this.position = null; this.admin = false; this.goal = 0; this.wonCount = 0; this.loseCount = 0; this.penKullandi = false; this.dizilimTimeout = null; this.sa = false; this.afkMac = 0; this.mesajGitmez = false; this.mesajGitmezTimeout = null; this.cezaInterval = null; this.cezali = false; this.mevkiCeza = 0; this.mevkiCezaAldi = false; this.avatarUyari = false; this.enabledOylamaListesi = true; this.enabledOylamaListesiTimeout = null; this.loginTime = 0; this.kaliciAdmin = false; this.onayTimeout = null; this.cizgi = false; this.booster = false; this.textColor = -1; this.boosterSeviye = 0; this.vip = false; this.gizliAdmin = false; this.ozelAvatar = null; this.ozelAvatarInterval = null; this.ozelAvatarMs = gameContext.defAvatarMs; this.ozelAvatarIndex = 0; this.adminCagirCurTime = 0; this.onay = false; this.golBuyumeTimeout = null; } showName() { if (!this.onay) { return this.name; } if (this.vip && this.admin && this.kaliciAdmin) { return ( gameContext.getRutbeEmojiByUser(this.name) + "⭐?" + gameContext.getKralNick(this.name) ); } if (this.booster && this.vip && this.admin) { return ( gameContext.getRutbeEmojiByUser(this.name) + "⭐?⚡" + gameContext.getKralNick(this.name) ); } if (this.vip && this.booster && this.admin && this.kaliciAdmin) { return ( gameContext.getRutbeEmojiByUser(this.name) + "⭐??" + gameContext.getKralNick(this.name) ); } if (this.vip && this.admin) { return ( gameContext.getRutbeEmojiByUser(this.name) + "⭐⚡" + gameContext.getKralNick(this.name) ); } if (this.booster && this.admin && this.kaliciAdmin) { return ( gameContext.getRutbeEmojiByUser(this.name) + "??" + gameContext.getKralNick(this.name) ); } if (this.booster && this.admin) { return ( gameContext.getRutbeEmojiByUser(this.name) + "?⚡" + gameContext.getKralNick(this.name) ); } if (this.booster && this.vip) { return ( gameContext.getRutbeEmojiByUser(this.name) + "⭐?" + gameContext.getKralNick(this.name) ); } if (this.admin) { return ( gameContext.getRutbeEmojiByUser(this.name) + (this.kaliciAdmin ? "?" : "⚡") + gameContext.getKralNick(this.name) ); } if (this.booster) { return ( gameContext.getRutbeEmojiByUser(this.name) + "?" + gameContext.getKralNick(this.name) ); } if (this.vip) { return ( gameContext.getRutbeEmojiByUser(this.name) + "⭐" + gameContext.getKralNick(this.name) ); } return ( gameContext.getRutbeEmojiByUser(this.name) + gameContext.getKralNick(this.name) ); } }; var StaInfo = class StaInfo { constructor(info) { info = info == null ? {} : info; this.mac = info.mac ? info.mac : 0; this.galibiyet = info.galibiyet ? info.galibiyet : 0; this.maglubiyet = info.maglubiyet ? info.maglubiyet : 0; this.gol = info.gol ? info.gol : 0; this.asist = info.asist ? info.asist : 0; this.kurtarma = info.kurtarma ? info.kurtarma : 0; this.kk = info.kk ? info.kk : 0; this.cs = info.cs ? info.cs : 0; this.dm = info.dm ? info.dm : 0; this.macinAdami = info.macinAdami ? info.macinAdami : 0; this.ilk3 = info.ilk3 ? info.ilk3 : 0; this.ilk5 = info.ilk5 ? info.ilk5 : 0; this.rank = info.rank ? info.rank : 0; } }; var Uye = class Uye { constructor(info) { info = info == null ? {} : info; this.name = info.name ? info.name : ""; this.pwd = info.pwd ? info.pwd : ""; this.auths = info.auths ? info.auths : []; this.conns = info.conns ? info.conns : []; this.onlineSure = info.onlineSure ? info.onlineSure : 0; this.admin = info.admin ? true : false; this.booster = info.booster ? true : false; this.textColor = info.textColor == null ? -1 : info.textColor; this.boosterSeviye = info.boosterSeviye == null ? 0 : info.boosterSeviye; this.vip = info.vip ? true : false; this.gizliAdmin = info.gizliAdmin ? true : false; this.owner = info.owner ? true : false; } }; init((pub = true),(alfaTest = false),(odaNo = "1"),(mapMod = MapMod.SADE));