This commit is contained in:
Sendou 2019-07-27 16:48:33 +03:00
parent 3ccb237520
commit cd4ae90468
22 changed files with 210 additions and 22 deletions

View File

@ -1,13 +1,13 @@
{
"files": {
"main.js": "/static/js/main.da201f04.chunk.js",
"main.js.map": "/static/js/main.da201f04.chunk.js.map",
"main.js": "/static/js/main.964e5543.chunk.js",
"main.js.map": "/static/js/main.964e5543.chunk.js.map",
"runtime~main.js": "/static/js/runtime~main.a8a9905a.js",
"runtime~main.js.map": "/static/js/runtime~main.a8a9905a.js.map",
"static/js/2.262c534a.chunk.js": "/static/js/2.262c534a.chunk.js",
"static/js/2.262c534a.chunk.js.map": "/static/js/2.262c534a.chunk.js.map",
"static/js/2.96d5d462.chunk.js": "/static/js/2.96d5d462.chunk.js",
"static/js/2.96d5d462.chunk.js.map": "/static/js/2.96d5d462.chunk.js.map",
"index.html": "/index.html",
"precache-manifest.1247c056ccf6a3a04c55d6b1bbd6f3d9.js": "/precache-manifest.1247c056ccf6a3a04c55d6b1bbd6f3d9.js",
"precache-manifest.da9530b33b458b50b463fbbfeea3ee5f.js": "/precache-manifest.da9530b33b458b50b463fbbfeea3ee5f.js",
"service-worker.js": "/service-worker.js",
"static/media/academy-sz.png": "/static/media/academy-sz.d3862485.png",
"static/media/ancho-v_games.png": "/static/media/ancho-v_games.07d5d0f6.png",
@ -42,6 +42,7 @@
"static/media/museum.png": "/static/media/museum.176394c2.png",
"static/media/musselforge_fitness.png": "/static/media/musselforge_fitness.a66323de.png",
"static/media/new_albacore_hotel.png": "/static/media/new_albacore_hotel.0c283c87.png",
"static/media/nice.mp3": "/static/media/nice.c65e99e0.mp3",
"static/media/pavilion-sz.png": "/static/media/pavilion-sz.61cf30c5.png",
"static/media/piranha_pit.png": "/static/media/piranha_pit.48621b6f.png",
"static/media/pit-rm.png": "/static/media/pit-rm.19f5e757.png",
@ -52,6 +53,7 @@
"static/media/ranked.png": "/static/media/ranked.415f6ad8.png",
"static/media/reef-sz.png": "/static/media/reef-sz.ff3eacf5.png",
"static/media/regular.png": "/static/media/regular.4848edcb.png",
"static/media/reroll.mp3": "/static/media/reroll.7fd6d0f6.mp3",
"static/media/rig.png": "/static/media/rig.87b5e71c.png",
"static/media/rm.png": "/static/media/rm.ee623ae2.png",
"static/media/shellendorf_institute.png": "/static/media/shellendorf_institute.d6669767.png",

View File

@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="shortcut icon" href="/favicon.ico"/><link rel="stylesheet" href="//cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.css"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><link rel="manifest" href="/manifest.json"/><title>sendou.ink</title></head><body style="background-color:#f2f7fd"><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(l){function e(e){for(var r,t,n=e[0],o=e[1],u=e[2],f=0,i=[];f<n.length;f++)t=n[f],p[t]&&i.push(p[t][0]),p[t]=0;for(r in o)Object.prototype.hasOwnProperty.call(o,r)&&(l[r]=o[r]);for(s&&s(e);i.length;)i.shift()();return c.push.apply(c,u||[]),a()}function a(){for(var e,r=0;r<c.length;r++){for(var t=c[r],n=!0,o=1;o<t.length;o++){var u=t[o];0!==p[u]&&(n=!1)}n&&(c.splice(r--,1),e=f(f.s=t[0]))}return e}var t={},p={1:0},c=[];function f(e){if(t[e])return t[e].exports;var r=t[e]={i:e,l:!1,exports:{}};return l[e].call(r.exports,r,r.exports,f),r.l=!0,r.exports}f.m=l,f.c=t,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(r,e){if(1&e&&(r=f(r)),8&e)return r;if(4&e&&"object"==typeof r&&r&&r.__esModule)return r;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:r}),2&e&&"string"!=typeof r)for(var n in r)f.d(t,n,function(e){return r[e]}.bind(null,n));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="/";var r=window.webpackJsonp=window.webpackJsonp||[],n=r.push.bind(r);r.push=e,r=r.slice();for(var o=0;o<r.length;o++)e(r[o]);var s=n;a()}([])</script><script src="/static/js/2.262c534a.chunk.js"></script><script src="/static/js/main.da201f04.chunk.js"></script></body></html>
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="shortcut icon" href="/favicon.ico"/><link rel="stylesheet" href="//cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.css"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><link rel="manifest" href="/manifest.json"/><title>sendou.ink</title></head><body style="background-color:#f2f7fd"><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(l){function e(e){for(var r,t,n=e[0],o=e[1],u=e[2],f=0,i=[];f<n.length;f++)t=n[f],p[t]&&i.push(p[t][0]),p[t]=0;for(r in o)Object.prototype.hasOwnProperty.call(o,r)&&(l[r]=o[r]);for(s&&s(e);i.length;)i.shift()();return c.push.apply(c,u||[]),a()}function a(){for(var e,r=0;r<c.length;r++){for(var t=c[r],n=!0,o=1;o<t.length;o++){var u=t[o];0!==p[u]&&(n=!1)}n&&(c.splice(r--,1),e=f(f.s=t[0]))}return e}var t={},p={1:0},c=[];function f(e){if(t[e])return t[e].exports;var r=t[e]={i:e,l:!1,exports:{}};return l[e].call(r.exports,r,r.exports,f),r.l=!0,r.exports}f.m=l,f.c=t,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(r,e){if(1&e&&(r=f(r)),8&e)return r;if(4&e&&"object"==typeof r&&r&&r.__esModule)return r;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:r}),2&e&&"string"!=typeof r)for(var n in r)f.d(t,n,function(e){return r[e]}.bind(null,n));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="/";var r=window.webpackJsonp=window.webpackJsonp||[],n=r.push.bind(r);r.push=e,r=r.slice();for(var o=0;o<r.length;o++)e(r[o]);var s=n;a()}([])</script><script src="/static/js/2.96d5d462.chunk.js"></script><script src="/static/js/main.964e5543.chunk.js"></script></body></html>

View File

@ -1,15 +1,15 @@
self.__precacheManifest = (self.__precacheManifest || []).concat([
{
"revision": "789e973d9a9b022b35726832f147e276",
"revision": "06d43bfe31dfc4c9d585a218b70c7f76",
"url": "/index.html"
},
{
"revision": "400597823d2046153b33",
"url": "/static/js/2.262c534a.chunk.js"
"revision": "9cffb2719a910ea3463a",
"url": "/static/js/2.96d5d462.chunk.js"
},
{
"revision": "8341c5826954f2c5f202",
"url": "/static/js/main.da201f04.chunk.js"
"revision": "8276d4a5763757faa32e",
"url": "/static/js/main.964e5543.chunk.js"
},
{
"revision": "42ac5946195a7306e2a5",
@ -147,6 +147,10 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([
"revision": "0c283c87ddd2cc2841ca1dc4eee60942",
"url": "/static/media/new_albacore_hotel.0c283c87.png"
},
{
"revision": "c65e99e0281e1a9bfc5399e00d13ad89",
"url": "/static/media/nice.c65e99e0.mp3"
},
{
"revision": "61cf30c52741512e56540947e75c3b11",
"url": "/static/media/pavilion-sz.61cf30c5.png"
@ -187,6 +191,10 @@ self.__precacheManifest = (self.__precacheManifest || []).concat([
"revision": "4848edcb5eba727112fc12301e9bf5cd",
"url": "/static/media/regular.4848edcb.png"
},
{
"revision": "7fd6d0f68f91525e25ab79c2443ae63e",
"url": "/static/media/reroll.7fd6d0f6.mp3"
},
{
"revision": "87b5e71c29a70bc15a501002b4192517",
"url": "/static/media/rig.87b5e71c.png"

View File

@ -14,7 +14,7 @@
importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.0/workbox-sw.js");
importScripts(
"/precache-manifest.1247c056ccf6a3a04c55d6b1bbd6f3d9.js"
"/precache-manifest.da9530b33b458b50b463fbbfeea3ee5f.js"
);
self.addEventListener('message', (event) => {

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

View File

@ -10489,6 +10489,15 @@
"react-dom": "^16.6.1"
}
},
"react-sound": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/react-sound/-/react-sound-1.2.0.tgz",
"integrity": "sha512-pc2l8f7Oy3VePRRVesBwSSJ0mrCeD/lE5GVCT1RPdEQ7lgbZTDyWI8HokXHmS1v79aiLnd3WTRhfsBAY0NTb8g==",
"requires": {
"prop-types": "^15.5.7",
"soundmanager2": "^2.97.20170602"
}
},
"reactcss": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/reactcss/-/reactcss-1.2.3.tgz",
@ -11445,6 +11454,11 @@
}
}
},
"soundmanager2": {
"version": "2.97.20170602",
"resolved": "https://registry.npmjs.org/soundmanager2/-/soundmanager2-2.97.20170602.tgz",
"integrity": "sha512-2ee7ES9SJ++WkD7PGHMeT4QUuJr7uC3wacD6RoCDlKjdSp9lpEOaKm3lKWKld119DLILjS2l9U6xpXJN6U0KPQ=="
},
"source-list-map": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",

View File

@ -17,6 +17,7 @@
"react-router-dom": "^5.0.1",
"react-scripts": "3.0.0",
"react-sketch": "^0.5.1",
"react-sound": "^1.2.0",
"semantic-ui-react": "^0.86.0"
},
"scripts": {

View File

@ -1,13 +1,19 @@
import React from 'react'
import { Icon } from 'semantic-ui-react'
import RollSim from './RollSim'
const Footer = () => {
return (
<div style={{"fontSize": "small", "paddingTop": "25px"}} >
<div>
<div style={{ "paddingTop": "25px" }}>
<RollSim />
</div>
<div style={{ "fontSize": "small" }}>
<hr />
Website by <a href="https://twitter.com/sendouc">Sendou</a>. Data for the X Rank Leaderboards provided by <a href="https://twitter.com/LeanYoshi">Lean</a>.
Data for the rotations provided by <a href="https://splatoon2.ink/">splatoon2.ink</a>. Map pictures for the planner provided by <a href="https://twitter.com/zorg_z0rg_z0r8">zorg</a>.<br />
<Icon name='github' /> Source code for this site is available on <a href="https://github.com/Sendouc/sendou-ink">GitHub</a>
</div>
</div>
)
}

View File

@ -32,6 +32,9 @@ const HomePage = ({ setMenuSelection }) => {
You can choose any weapon to find out the top performing players with it.
Another way is to search for a player name if you are curious how a specific player has performed in the past.
</div>
<div style={{'paddingTop': '15px'}}>
<b><Link to='/calendar'>Calendar</Link></b> - Discover all the upcoming events in competitive Splatoon.
</div>
<div style={{'paddingTop': '15px'}}>
<b><Link to='/links'>Links</Link></b> - Discover useful resources related to competitive Splatoon.
</div>

141
react-ui/src/components/Misc/RollSim.js vendored Normal file
View File

@ -0,0 +1,141 @@
import React, { useState, useEffect } from 'react'
import { Grid } from 'semantic-ui-react'
import { clothingGear, shoesGear, headGear, choose } from '../../utils/lists'
import Sound from 'react-sound'
import BDU from '../img/abilityIcons/BDU.png'
import BRU from '../img/abilityIcons/BRU.png'
import CB from '../img/abilityIcons/CB.png'
import DR from '../img/abilityIcons/DR.png'
import H from '../img/abilityIcons/H.png'
import ISM from '../img/abilityIcons/ISM.png'
import ISS from '../img/abilityIcons/ISS.png'
import LDE from '../img/abilityIcons/LDE.png'
import MPU from '../img/abilityIcons/MPU.png'
import NS from '../img/abilityIcons/NS.png'
import OG from '../img/abilityIcons/OG.png'
import QR from '../img/abilityIcons/QR.png'
import QSJ from '../img/abilityIcons/QSJ.png'
import REC from '../img/abilityIcons/REC.png'
import RES from '../img/abilityIcons/RES.png'
import RP from '../img/abilityIcons/RP.png'
import RSU from '../img/abilityIcons/RSU.png'
import SCU from '../img/abilityIcons/SCU.png'
import SJ from '../img/abilityIcons/SJ.png'
import SPU from '../img/abilityIcons/SPU.png'
import SS from '../img/abilityIcons/SS.png'
import SSU from '../img/abilityIcons/SSU.png'
import T from '../img/abilityIcons/T.png'
import TI from '../img/abilityIcons/TI.png'
import OS from '../img/abilityIcons/OS.png'
import reroll from '../sounds/reroll.mp3'
import booyah from '../sounds/nice.mp3'
const RollSim = () => {
const subAbilities = [ISM,ISS,REC,RSU,SSU,QSJ,RES,BDU,MPU,QR,SCU,SS,SPU,BRU]
const headAbilities = [ISM,ISS,REC,RSU,SSU,QSJ,RES,BDU,MPU,QR,SCU,SS,SPU,BRU,OG,LDE,CB,T]
const clothingAbilities = [ISM,ISS,REC,RSU,SSU,QSJ,RES,BDU,MPU,QR,SCU,SS,SPU,BRU,H,NS,TI,RP]
const shoeAbilities = [ISM,ISS,REC,RSU,SSU,QSJ,RES,BDU,MPU,QR,SCU,SS,SPU,BRU,DR,SJ,OS]
const [headLink] = useState(choose(headGear))
const [headMain] = useState(choose(headAbilities))
const [headSubs, setHeadSubs] = useState([choose(subAbilities), choose(subAbilities), choose(subAbilities)])
const [clothingLink] = useState(choose(clothingGear))
const [clothingMain] = useState(choose(clothingAbilities))
const [clothingSubs, setClothingSubs] = useState([choose(subAbilities), choose(subAbilities), choose(subAbilities)])
const [shoesLink] = useState(choose(shoesGear))
const [shoesMain] = useState(choose(shoeAbilities))
const [shoesSubs, setShoesSubs] = useState([choose(subAbilities), choose(subAbilities), choose(subAbilities)])
const [rolling, setRolling] = useState(false)
const [audio, setAudio] = useState(Sound.status.STOPPED)
const [nice, setNice] = useState(Sound.status.STOPPED)
const gearStyle = { "maxWidth": "50px", "height": "auto" }
const mainAbilityStyle = { //https://github.com/loadout-ink/splat2-calc
"zIndex": "2",
"borderRadius": "50%",
"width": "40px",
"height": "40px",
"background": "#000",
"border": "2px solid #888",
"borderRight": "0px",
"borderBottom": "0px",
"backgroundSize": "100%",
"boxShadow": "0 0 0 1px #000"
}
const subAbilityStyle = { //https://github.com/loadout-ink/splat2-calc
"zIndex": "2",
"borderRadius": "50%",
"width": "30px",
"height": "30px",
"background": "#000",
"border": "2px solid #888",
"borderRight": "0px",
"borderBottom": "0px",
"backgroundSize": "100%",
"boxShadow": "0 0 0 1px #000"
}
const sleep = (milliseconds) => {
return new Promise(resolve => setTimeout(resolve, milliseconds))
}
const roll = async (setSubs) => {
if (rolling) return
setRolling(true)
setAudio(Sound.status.PLAYING)
let ability1 = null
let ability2 = null
let ability3 = null
for (let index = 0; index < 16; index++) {
ability1 = choose(subAbilities)
ability2 = choose(subAbilities)
ability3 = choose(subAbilities)
setSubs([ability1, ability2, ability3])
await sleep(75)
}
setAudio(Sound.status.STOPPED)
if (ability1 === ability2 && ability2 === ability3) setNice(Sound.status.PLAYING)
setRolling(false)
}
return (
<div>
<Sound url={reroll} playStatus={audio} loop={true} volume={10} />
<Sound url={booyah} playStatus={nice} volume={10} onFinishedPlaying={() => setNice(Sound.status.STOPPED)} />
<Grid columns='equal' stackable>
<Grid.Column textAlign="left">
<div style={{'float': 'none', 'whiteSpace': 'nowrap'}}>
<img src={`https://raw.githubusercontent.com/Leanny/leanny.github.io/master/splat2/gear/${headLink}.png`} style={gearStyle} alt="" />
<img src={headMain} style={mainAbilityStyle} alt=""/>
<img src={headSubs[0]} style={subAbilityStyle} onClick={() => roll(setHeadSubs)} alt="" />
<img src={headSubs[1]} style={subAbilityStyle} onClick={() => roll(setHeadSubs)} alt="" />
<img src={headSubs[2]} style={subAbilityStyle} onClick={() => roll(setHeadSubs)} alt="" />
</div>
</Grid.Column>
<Grid.Column textAlign="center">
<div style={{'float': 'none', 'whiteSpace': 'nowrap'}}>
<img src={`https://raw.githubusercontent.com/Leanny/leanny.github.io/master/splat2/gear/${clothingLink}.png`} style={gearStyle} alt="" />
<img src={clothingMain} style={mainAbilityStyle} alt="" />
<img src={clothingSubs[0]} style={subAbilityStyle} alt="" onClick={() => roll(setClothingSubs)} />
<img src={clothingSubs[1]} style={subAbilityStyle} alt="" onClick={() => roll(setClothingSubs)} />
<img src={clothingSubs[2]} style={subAbilityStyle} alt="" onClick={() => roll(setClothingSubs)} />
</div>
</Grid.Column>
<Grid.Column textAlign="right">
<div style={{'float': 'none', 'whiteSpace': 'nowrap'}}>
<img src={`https://raw.githubusercontent.com/Leanny/leanny.github.io/master/splat2/gear/${shoesLink}.png`} style={gearStyle} alt="" />
<img src={shoesMain} style={mainAbilityStyle} alt=""/>
<img src={shoesSubs[0]} style={subAbilityStyle} alt="" onClick={() => roll(setShoesSubs)} />
<img src={shoesSubs[1]} style={subAbilityStyle} alt="" onClick={() => roll(setShoesSubs)} />
<img src={shoesSubs[2]} style={subAbilityStyle} alt="" onClick={() => roll(setShoesSubs)} />
</div>
</Grid.Column>
</Grid>
</div>
)
}
export default RollSim

View File

@ -11,10 +11,10 @@ const Calendar = ({ setMenuSelection }) => {
const iFrameHTML = `<iframe title="calendar" src="https://calendar.google.com/calendar/embed?height=600&amp;wkst=2&amp;bgcolor=%23ffffff&amp;src=NDNnYnJlamkxbnQyZTY1dWJuZzdvYWkxZGtAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ&amp;color=%23E67C73&amp;showTitle=0&amp;showNav=1&amp;showDate=1&amp;showPrint=0&amp;showCalendars=0&amp;ctz=${jstz.determine().name()}" style=border-width: 0 width=${containerWidth} height="1000" frameBorder="0" scrolling="no"></iframe>`
//This is a weird solution but I couldn't get it working just setting the iframe src from a variable
useEffect(() => {
setMenuSelection('calendar')
document.title = 'Competitive Calendar - sendou.ink'
console.log('calenderDiv', calenderDiv.current)
calenderDiv.current.innerHTML = iFrameHTML
}, [setMenuSelection, iFrameHTML])
@ -30,12 +30,14 @@ const Calendar = ({ setMenuSelection }) => {
💰 - Has prizes<br/>
🎭 - Unconventional ruleset<br/>
🔒 - Limited registration<br/>
🎲 - Solo registration available
🎲 - Solo registration available<br />
👀 - No open registration
</h4>
</Segment>}
</div>
<div style={{"paddingTop": "15px"}} ref={calenderDiv}></div>
<div style={{"paddingTop": "10px"}}>
If an event is missing you can contact <a href="https://twitter.com/Kbot_273">Kbot</a> about it.<br/>
You can add the calendar to your personal Google Calendar by pressing the plus button above. If you are using other kind of calendar program you can try <a href="https://calendar.google.com/calendar/ical/43gbreji1nt2e65ubng7oai1dk%40group.calendar.google.com/public/basic.ics">this link</a> instead.
</div>
</div>

Binary file not shown.

Binary file not shown.

View File

@ -4,6 +4,11 @@ export function getNumberWithOrdinal(n) {
return n+(s[(v-20)%10]||s[v]||s[0]);
}
export function choose(choices) {
var index = Math.floor(Math.random() * choices.length);
return choices[index];
}
export const modes = ["", "Splat Zones", "Tower Control", "Rainmaker", "Clam Blitz"]
export const months = ["", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
@ -98,4 +103,10 @@ export const weaponsByCategory = {"Shooters": shooters, "Semi-automatic Shooters
"Blasters": blasters, "Rollers": rollers, "Brushes": brushes, "Chargers": chargers, "Sloshers": sloshers,
"Splatlings": splatlings, "Dualies": dualies, "Brellas": brellas}
export const categoryKeys = ["Shooters", "Semi-automatic Shooters", "Blasters", "Rollers", "Brushes", "Chargers", "Sloshers", "Splatlings", "Dualies", "Brellas"]
export const categoryKeys = ["Shooters", "Semi-automatic Shooters", "Blasters", "Rollers", "Brushes", "Chargers", "Sloshers", "Splatlings", "Dualies", "Brellas"]
export const clothingGear = ["Clt_AMB000", "Clt_AMB001", "Clt_AMB002", "Clt_AMB003", "Clt_AMB004", "Clt_AMB005", "Clt_AMB006", "Clt_AMB007", "Clt_AMB008", "Clt_AMB009", "Clt_AMB010", "Clt_COP100", "Clt_COP101", "Clt_COP102", "Clt_COP103", "Clt_COP104", "Clt_COP105", "Clt_COP106", "Clt_COP107", "Clt_COP108", "Clt_COP109", "Clt_COP110", "Clt_CRC000", "Clt_FST001", "Clt_FST002", "Clt_HAP001", "Clt_JKT000", "Clt_JKT001", "Clt_JKT002", "Clt_JKT003", "Clt_JKT004", "Clt_JKT005", "Clt_JKT006", "Clt_JKT007", "Clt_JKT008", "Clt_JKT009", "Clt_JKT010", "Clt_JKT011", "Clt_JKT012", "Clt_JKT013", "Clt_JKT014", "Clt_JKT015", "Clt_JKT016", "Clt_JKT017", "Clt_JKT018", "Clt_JKT019", "Clt_JKT020", "Clt_JKT021", "Clt_JKT022", "Clt_JKT023", "Clt_JKT024", "Clt_JKT025", "Clt_JKT026", "Clt_JKT027", "Clt_JKT028", "Clt_JKT029", "Clt_JKT030", "Clt_JKT031", "Clt_JKT032", "Clt_JKT033", "Clt_JKT034", "Clt_JKT035", "Clt_JKT036", "Clt_JKT037", "Clt_JKT038", "Clt_JKT039", "Clt_JKT040", "Clt_JKT041", "Clt_JKT042", "Clt_JKT043", "Clt_JKT044", "Clt_MSN000", "Clt_MSN004", "Clt_MSN101", "Clt_MSN104", "Clt_MSN105", "Clt_MSN106", "Clt_PLO000", "Clt_PLO001", "Clt_PLO002", "Clt_PLO003", "Clt_PLO004", "Clt_PLO005", "Clt_PLO006", "Clt_PLO007", "Clt_PLO008", "Clt_PRK000", "Clt_PRK001", "Clt_PRK002", "Clt_PRK004", "Clt_PRK005", "Clt_PRK006", "Clt_PRK007", "Clt_PRK008", "Clt_PRK009", "Clt_PRK010", "Clt_PRK011", "Clt_RVL000", "Clt_RVL001", "Clt_SHT000", "Clt_SHT001", "Clt_SHT002", "Clt_SHT003", "Clt_SHT004", "Clt_SHT005", "Clt_SHT006", "Clt_SHT007", "Clt_SHT008", "Clt_SHT009", "Clt_SHT010", "Clt_SHT011", "Clt_SHT012", "Clt_SHT013", "Clt_SHT014", "Clt_SHT015", "Clt_SHT017", "Clt_SHT018", "Clt_SHT019", "Clt_SHT020", "Clt_SHT021", "Clt_SHT022", "Clt_SHT023", "Clt_SHT024", "Clt_SHT025", "Clt_SHT026", "Clt_SHT027", "Clt_SHT028", "Clt_SHT029", "Clt_SWT000", "Clt_SWT001", "Clt_SWT002", "Clt_SWT003", "Clt_SWT004", "Clt_SWT005", "Clt_SWT006", "Clt_SWT007", "Clt_SWT008", "Clt_SWT009", "Clt_SWT010", "Clt_SWT011", "Clt_SWT012", "Clt_SWT013", "Clt_SWT014", "Clt_SWT015", "Clt_TEL000", "Clt_TEL001", "Clt_TEL002", "Clt_TEL003", "Clt_TEL004", "Clt_TEL005", "Clt_TEL006", "Clt_TEL007", "Clt_TEL008", "Clt_TEL009", "Clt_TEL010", "Clt_TEL011", "Clt_TEL012", "Clt_TEL013", "Clt_TEL014", "Clt_TEL015", "Clt_TEL016", "Clt_TEL017", "Clt_TEL018", "Clt_TEL019", "Clt_TEL020", "Clt_TEL021", "Clt_TEL022", "Clt_TEL023", "Clt_TEL024", "Clt_TES000", "Clt_TES001", "Clt_TES002", "Clt_TES003", "Clt_TES004", "Clt_TES005", "Clt_TES006", "Clt_TES007", "Clt_TES008", "Clt_TES009", "Clt_TES010", "Clt_TES011", "Clt_TES012", "Clt_TES013", "Clt_TES014", "Clt_TES015", "Clt_TES016", "Clt_TES017", "Clt_TES018", "Clt_TES019", "Clt_TES020", "Clt_TES021", "Clt_TES022", "Clt_TES023", "Clt_TES026", "Clt_TES027", "Clt_TES028", "Clt_TES029", "Clt_TES030", "Clt_TES031", "Clt_TES032", "Clt_TES033", "Clt_TES034", "Clt_TES035", "Clt_TES036", "Clt_TES037", "Clt_TES038", "Clt_TES039", "Clt_TES040", "Clt_TES041", "Clt_TES042", "Clt_TES043", "Clt_TES044", "Clt_TES045", "Clt_TES046", "Clt_TES047", "Clt_TES048", "Clt_TES049", "Clt_TES050", "Clt_TES051", "Clt_TES052", "Clt_TES053", "Clt_TES054", "Clt_TES055", "Clt_TES056", "Clt_TES057", "Clt_TES058", "Clt_TES059", "Clt_TES060", "Clt_TES061", "Clt_TLY000", "Clt_TLY001", "Clt_TLY002", "Clt_TLY003", "Clt_TLY004", "Clt_TLY005", "Clt_TLY006", "Clt_TLY007", "Clt_TLY008", "Clt_TLY009", "Clt_TLY010", "Clt_TLY011", "Clt_TLY012", "Clt_TLY013", "Clt_TNK000", "Clt_TNK001", "Clt_TNK003", "Clt_TNK004", "Clt_TNK005", "Clt_TNK006", "Clt_VST000", "Clt_VST001", "Clt_VST002", "Clt_VST003", "Clt_VST004", "Clt_VST005", "Clt_VST006", "Clt_VST007", "Clt_VST008", "Clt_VST009"]
export const headGear = ["Hed_ACC001", "Hed_AMB000", "Hed_AMB001", "Hed_AMB002", "Hed_AMB003", "Hed_AMB004", "Hed_AMB005", "Hed_AMB006", "Hed_AMB007", "Hed_AMB008", "Hed_AMB009", "Hed_AMB010", "Hed_CAP000", "Hed_CAP001", "Hed_CAP002", "Hed_CAP003", "Hed_CAP004", "Hed_CAP005", "Hed_CAP006", "Hed_CAP007", "Hed_CAP008", "Hed_CAP009", "Hed_CAP010", "Hed_CAP011", "Hed_CAP012", "Hed_CAP014", "Hed_CAP015", "Hed_CAP018", "Hed_CAP019", "Hed_CAP020", "Hed_CAP021", "Hed_CAP023", "Hed_CAP024", "Hed_CAP025", "Hed_CAP026", "Hed_CAP027", "Hed_COP100", "Hed_COP101", "Hed_COP102", "Hed_COP103", "Hed_COP104", "Hed_COP105", "Hed_COP106", "Hed_COP107", "Hed_COP108", "Hed_COP109", "Hed_CRC000", "Hed_EYE000", "Hed_EYE001", "Hed_EYE002", "Hed_EYE003", "Hed_EYE004", "Hed_EYE005", "Hed_EYE006", "Hed_EYE007", "Hed_EYE008", "Hed_EYE009", "Hed_EYE010", "Hed_EYE011", "Hed_EYE012", "Hed_EYE013", "Hed_EYE014", "Hed_EYE015", "Hed_EYE016", "Hed_EYE017", "Hed_EYE018", "Hed_EYE019", "Hed_EYE020", "Hed_FST000", "Hed_HAP000", "Hed_HAP001", "Hed_HAP002", "Hed_HAP003", "Hed_HAP004", "Hed_HAP005", "Hed_HAP006", "Hed_HAP007", "Hed_HAP008", "Hed_HAP009", "Hed_HAP010", "Hed_HAP011", "Hed_HAP012", "Hed_HAP013", "Hed_HAP014", "Hed_HAP015", "Hed_HAT000", "Hed_HAT001", "Hed_HAT002", "Hed_HAT003", "Hed_HAT004", "Hed_HAT005", "Hed_HAT006", "Hed_HAT007", "Hed_HAT008", "Hed_HAT009", "Hed_HAT010", "Hed_HAT011", "Hed_HAT012", "Hed_HAT013", "Hed_HAT014", "Hed_HBD001", "Hed_HBD002", "Hed_HBD003", "Hed_HBD004", "Hed_HBD005", "Hed_HBD007", "Hed_HBD008", "Hed_HDP000", "Hed_HDP001", "Hed_HDP002", "Hed_HDP003", "Hed_HDP004", "Hed_HDP005", "Hed_HDP006", "Hed_MET000", "Hed_MET002", "Hed_MET004", "Hed_MET005", "Hed_MET006", "Hed_MET007", "Hed_MET008", "Hed_MET009", "Hed_MET010", "Hed_MET011", "Hed_MSK000", "Hed_MSK001", "Hed_MSK002", "Hed_MSK003", "Hed_MSK004", "Hed_MSK005", "Hed_MSK006", "Hed_MSK007", "Hed_MSK008", "Hed_MSK009", "Hed_MSK010", "Hed_MSK011", "Hed_MSK012", "Hed_MSK013", "Hed_MSN000", "Hed_MSN004", "Hed_MSN101", "Hed_MSN104", "Hed_MSN105", "Hed_MSN106", "Hed_MSN107", "Hed_MSN108", "Hed_NCP000", "Hed_NCP001", "Hed_NCP002", "Hed_NCP003", "Hed_NCP004", "Hed_NCP005", "Hed_NCP006", "Hed_NCP007", "Hed_NCP008", "Hed_NCP009", "Hed_NCP010", "Hed_NCP011", "Hed_RVL002", "Hed_RVL003", "Hed_VIS000", "Hed_VIS001", "Hed_VIS002", "Hed_VIS003", "Hed_VIS004"]
export const shoesGear = ["Shs_AMB000", "Shs_AMB001", "Shs_AMB002", "Shs_AMB003", "Shs_AMB004", "Shs_AMB005", "Shs_AMB006", "Shs_AMB007", "Shs_AMB008", "Shs_AMB009", "Shs_AMB010", "Shs_BOT000", "Shs_BOT001", "Shs_BOT002", "Shs_BOT003", "Shs_BOT004", "Shs_BOT005", "Shs_BOT006", "Shs_BOT007", "Shs_BOT008", "Shs_BOT009", "Shs_BOT010", "Shs_BOT011", "Shs_BOT012", "Shs_BOT013", "Shs_BOT014", "Shs_BOT015", "Shs_BOT016", "Shs_BOT017", "Shs_BOT018", "Shs_CFS000", "Shs_CFS001", "Shs_COP101", "Shs_COP102", "Shs_COP103", "Shs_COP104", "Shs_COP105", "Shs_COP106", "Shs_CRC000", "Shs_FST000", "Shs_HAP000", "Shs_HAP001", "Shs_HAP002", "Shs_HAP003", "Shs_HAP004", "Shs_HAP005", "Shs_HAP006", "Shs_HAP007", "Shs_LTS000", "Shs_LTS001", "Shs_LTS002", "Shs_LTS003", "Shs_LTS004", "Shs_LTS005", "Shs_LTS006", "Shs_LTS007", "Shs_LTS008", "Shs_LTS009", "Shs_LTS010", "Shs_LTS011", "Shs_LTS012", "Shs_MSN000", "Shs_MSN004", "Shs_MSN101", "Shs_MSN104", "Shs_MSN105", "Shs_MSN106", "Shs_RVL000", "Shs_SDL000", "Shs_SDL001", "Shs_SDL003", "Shs_SDL004", "Shs_SDL005", "Shs_SDL006", "Shs_SDL007", "Shs_SDL008", "Shs_SDL009", "Shs_SHI000", "Shs_SHI001", "Shs_SHI002", "Shs_SHI003", "Shs_SHI004", "Shs_SHI005", "Shs_SHI006", "Shs_SHI008", "Shs_SHI009", "Shs_SHI010", "Shs_SHI011", "Shs_SHI012", "Shs_SHI013", "Shs_SHI014", "Shs_SHI015", "Shs_SHI016", "Shs_SHI017", "Shs_SHI018", "Shs_SHI019", "Shs_SHI020", "Shs_SHI021", "Shs_SHI022", "Shs_SHI023", "Shs_SHI024", "Shs_SHI025", "Shs_SHI026", "Shs_SHI027", "Shs_SHI028", "Shs_SHI029", "Shs_SHI030", "Shs_SHI031", "Shs_SHI032", "Shs_SHI033", "Shs_SHI034", "Shs_SHI035", "Shs_SHI036", "Shs_SHI037", "Shs_SHI038", "Shs_SHI039", "Shs_SHI040", "Shs_SHI041", "Shs_SHT000", "Shs_SHT001", "Shs_SHT002", "Shs_SHT003", "Shs_SHT004", "Shs_SHT005", "Shs_SHT006", "Shs_SHT007", "Shs_SHT008", "Shs_SHT009", "Shs_SHT010", "Shs_SHT011", "Shs_SHT012", "Shs_SHT013", "Shs_SHT014", "Shs_SHT015", "Shs_SHT016", "Shs_SHT017", "Shs_SHT018", "Shs_SHT019", "Shs_SLO000", "Shs_SLO001", "Shs_SLO002", "Shs_SLO003", "Shs_SLO004", "Shs_SLO005", "Shs_SLO006", "Shs_SLO007", "Shs_SLO008", "Shs_SLO009", "Shs_SLO010", "Shs_SLO011", "Shs_SLO012", "Shs_SLO013", "Shs_SLO014", "Shs_SLO015", "Shs_SLO016", "Shs_SLO017", "Shs_SLO018", "Shs_SLO019", "Shs_SLO020", "Shs_SLP000", "Shs_SLP001", "Shs_SLP002", "Shs_SLP003", "Shs_TRS000", "Shs_TRS001", "Shs_TRS002"]