mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-05-10 21:00:37 -05:00
roll sim
This commit is contained in:
parent
3ccb237520
commit
cd4ae90468
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
@ -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"
|
||||
|
|
@ -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
2
build/static/js/2.96d5d462.chunk.js
Normal file
2
build/static/js/2.96d5d462.chunk.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
build/static/js/main.964e5543.chunk.js
Normal file
2
build/static/js/main.964e5543.chunk.js
Normal file
File diff suppressed because one or more lines are too long
1
build/static/js/main.964e5543.chunk.js.map
Normal file
1
build/static/js/main.964e5543.chunk.js.map
Normal file
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
BIN
build/static/media/nice.c65e99e0.mp3
Normal file
BIN
build/static/media/nice.c65e99e0.mp3
Normal file
Binary file not shown.
BIN
build/static/media/reroll.7fd6d0f6.mp3
Normal file
BIN
build/static/media/reroll.7fd6d0f6.mp3
Normal file
Binary file not shown.
14
react-ui/package-lock.json
generated
14
react-ui/package-lock.json
generated
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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": {
|
||||
|
|
|
|||
8
react-ui/src/components/Misc/Footer.js
vendored
8
react-ui/src/components/Misc/Footer.js
vendored
|
|
@ -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>
|
||||
)
|
||||
}
|
||||
|
|
|
|||
3
react-ui/src/components/Misc/HomePage.js
vendored
3
react-ui/src/components/Misc/HomePage.js
vendored
|
|
@ -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
141
react-ui/src/components/Misc/RollSim.js
vendored
Normal 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
|
||||
6
react-ui/src/components/Tools/Calendar.js
vendored
6
react-ui/src/components/Tools/Calendar.js
vendored
|
|
@ -11,10 +11,10 @@ const Calendar = ({ setMenuSelection }) => {
|
|||
|
||||
const iFrameHTML = `<iframe title="calendar" src="https://calendar.google.com/calendar/embed?height=600&wkst=2&bgcolor=%23ffffff&src=NDNnYnJlamkxbnQyZTY1dWJuZzdvYWkxZGtAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ&color=%23E67C73&showTitle=0&showNav=1&showDate=1&showPrint=0&showCalendars=0&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>
|
||||
|
|
|
|||
BIN
react-ui/src/components/sounds/nice.mp3
Normal file
BIN
react-ui/src/components/sounds/nice.mp3
Normal file
Binary file not shown.
BIN
react-ui/src/components/sounds/reroll.mp3
Normal file
BIN
react-ui/src/components/sounds/reroll.mp3
Normal file
Binary file not shown.
13
react-ui/src/utils/lists.js
vendored
13
react-ui/src/utils/lists.js
vendored
|
|
@ -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"]
|
||||
Loading…
Reference in New Issue
Block a user