diff --git a/client/assets/styles/game.css b/client/assets/styles/game.css index d3553a4d..db7391a4 100644 --- a/client/assets/styles/game.css +++ b/client/assets/styles/game.css @@ -299,8 +299,6 @@ CRYP DAMAGE .game .img { position: relative; height: 100%; - min-width: 200px; - /*animation: rotate 1s infinite ease-in-out alternate;*/ } /*@keyframes rotate { diff --git a/client/assets/styles/instance.css b/client/assets/styles/instance.css index be711d78..54e1e149 100644 --- a/client/assets/styles/instance.css +++ b/client/assets/styles/instance.css @@ -5,7 +5,7 @@ .instance { display: grid; grid-template-columns: 1fr 1fr 1fr; - grid-template-rows: min-content min-content min-content min-content; + grid-template-rows: min-content min-content min-content 1fr; grid-template-areas: "top top info" @@ -148,13 +148,14 @@ .cryp-list { grid-area: cryps; - display: flex; - flex: 1 1 auto; + + display: grid; + grid-template-columns: 1fr 1fr 1fr; } .instance-cryp, .instance-cryp-active { display: grid; - grid-template-rows: min-content min-content min-content 250px min-content; + grid-template-rows: min-content min-content min-content 1fr min-content; grid-template-areas: "name " "skills " @@ -184,15 +185,11 @@ .cryp-list .avatar { grid-area: avatar; - display: flex; - flex: 1 1 auto; -} - -.cryp-list img { - justify-self: center; - grid-area: avatar; - min-width: 150px; - max-width: 250px; + object-fit: contain; + background-size: contain; + background-repeat: no-repeat; + background-position: center; + pointer-events: none; } .cryp-list .name { diff --git a/client/package.json b/client/package.json index 7f7d5730..a006be4f 100644 --- a/client/package.json +++ b/client/package.json @@ -13,28 +13,22 @@ "author": "", "license": "UNLICENSED", "dependencies": { - "anime": "^0.1.2", "animejs": "^3.0.1", "async": "^2.6.2", "borc": "^2.0.3", - "bulma-toast": "^1.2.0", "docco": "^0.7.0", "izitoast": "^1.4.0", - "jdenticon": "^2.1.0", - "key": "^0.1.11", "keymaster": "^1.6.2", "lodash": "^4.17.11", "node-sass": "^4.12.0", "parcel": "^1.12.3", - "particles.js": "^2.0.0", - "phaser": "^3.15.1", - "preact": "^8.3.1", - "preact-redux": "^2.0.3", - "redux": "^4.0.0", - "redux-diff-logger": "0.0.9" + "preact": "^10.0.0-beta.1", + "react-redux": "^7.0.3", + "redux": "^4.0.0" }, "devDependencies": { "babel-core": "^6.26.3", + "babel-plugin-module-resolver": "^3.2.0", "babel-preset-es2015": "^6.24.1", "babel-preset-react": "^6.24.1", "eslint": "^5.6.0", @@ -42,5 +36,9 @@ "eslint-plugin-import": "^2.14.0", "eslint-plugin-react": "^7.11.1", "jest": "^18.0.0" + }, + "alias": { + "react": "preact/compat", + "react-dom": "preact/compat" } } diff --git a/client/src/app.jsx b/client/src/app.jsx index 0b41e115..a55e8647 100644 --- a/client/src/app.jsx +++ b/client/src/app.jsx @@ -1,7 +1,7 @@ const preact = require('preact'); // const logger = require('redux-diff-logger'); -const { Provider } = require('preact-redux'); +const { Provider } = require('react-redux'); const { createStore, combineReducers } = require('redux'); const reducers = require('./reducers'); diff --git a/client/src/components/cryp.spawn.container.js b/client/src/components/cryp.spawn.container.js index 7dd8bfac..9b743b1b 100644 --- a/client/src/components/cryp.spawn.container.js +++ b/client/src/components/cryp.spawn.container.js @@ -1,4 +1,4 @@ -const { connect } = require('preact-redux'); +const { connect } = require('react-redux'); const CrypSpawnButton = require('./cryp.spawn.button'); diff --git a/client/src/components/game.container.jsx b/client/src/components/game.container.jsx index 47b34f67..03c421dc 100644 --- a/client/src/components/game.container.jsx +++ b/client/src/components/game.container.jsx @@ -1,4 +1,4 @@ -const { connect } = require('preact-redux'); +const { connect } = require('react-redux'); const actions = require('../actions'); diff --git a/client/src/components/game.cryp.jsx b/client/src/components/game.cryp.jsx index 7c6293aa..89bb2305 100644 --- a/client/src/components/game.cryp.jsx +++ b/client/src/components/game.cryp.jsx @@ -1,4 +1,4 @@ -const { connect } = require('preact-redux'); +const { connect } = require('react-redux'); const preact = require('preact'); const range = require('lodash/range'); @@ -106,7 +106,7 @@ function GameCryp(props) {
selectSkillTarget(cryp.id)} > - {crypAvatar(cryp.name)} + {crypAvatar(cryp.name, cryp.id)} {combatTextEl} {anim}
diff --git a/client/src/components/header.container.jsx b/client/src/components/header.container.jsx index a9a27313..93f24dcf 100644 --- a/client/src/components/header.container.jsx +++ b/client/src/components/header.container.jsx @@ -1,4 +1,4 @@ -const { connect } = require('preact-redux'); +const { connect } = require('react-redux'); const Header = require('./header.component'); diff --git a/client/src/components/info.container.jsx b/client/src/components/info.container.jsx index 9d460ff9..a5c75f2c 100644 --- a/client/src/components/info.container.jsx +++ b/client/src/components/info.container.jsx @@ -1,4 +1,4 @@ -const { connect } = require('preact-redux'); +const { connect } = require('react-redux'); const actions = require('../actions'); const Info = require('./info.component'); diff --git a/client/src/components/instance.component.jsx b/client/src/components/instance.component.jsx index 9a61b3ce..e8fb641b 100644 --- a/client/src/components/instance.component.jsx +++ b/client/src/components/instance.component.jsx @@ -1,5 +1,5 @@ const preact = require('preact'); -const { connect } = require('preact-redux'); +const { connect } = require('react-redux'); const Vbox = require('./vbox.component'); const InfoContainer = require('./info.container'); diff --git a/client/src/components/instance.create.form.jsx b/client/src/components/instance.create.form.jsx index a86e9c42..6eefda23 100644 --- a/client/src/components/instance.create.form.jsx +++ b/client/src/components/instance.create.form.jsx @@ -1,5 +1,5 @@ const preact = require('preact'); -const { connect } = require('preact-redux'); +const { connect } = require('react-redux'); const { Component } = require('preact'); const addState = connect( diff --git a/client/src/components/instance.cryps.jsx b/client/src/components/instance.cryps.jsx index 00b6a61a..4906520c 100644 --- a/client/src/components/instance.cryps.jsx +++ b/client/src/components/instance.cryps.jsx @@ -1,9 +1,9 @@ -const { connect } = require('preact-redux'); +const { connect } = require('react-redux'); const preact = require('preact'); const range = require('lodash/range'); const shapes = require('./shapes'); -const { SPECS, STATS, crypAvatar } = require('../utils'); +const { SPECS, STATS, instanceCryp } = require('../utils'); const actions = require('../actions'); const addState = connect( @@ -205,7 +205,7 @@ function Cryp(props) { return (
- {crypAvatar(cryp.name)} + {instanceCryp(cryp.name, cryp.id)}

{cryp.name}

hoverInfo(e, 'crypSkills')} > {skills} diff --git a/client/src/components/instance.equip.jsx b/client/src/components/instance.equip.jsx index 502a61d8..174d8fb4 100644 --- a/client/src/components/instance.equip.jsx +++ b/client/src/components/instance.equip.jsx @@ -1,4 +1,4 @@ -const { connect } = require('preact-redux'); +const { connect } = require('react-redux'); const preact = require('preact'); const range = require('lodash/range'); diff --git a/client/src/components/list.jsx b/client/src/components/list.jsx index 05bd1561..de57c909 100644 --- a/client/src/components/list.jsx +++ b/client/src/components/list.jsx @@ -1,4 +1,4 @@ -const { connect } = require('preact-redux'); +const { connect } = require('react-redux'); const preact = require('preact'); const { NULL_UUID } = require('./../utils'); diff --git a/client/src/components/login.container.jsx b/client/src/components/login.container.jsx index 2d36e1d4..8d8a75e1 100644 --- a/client/src/components/login.container.jsx +++ b/client/src/components/login.container.jsx @@ -1,4 +1,4 @@ -const { connect } = require('preact-redux'); +const { connect } = require('react-redux'); const Login = require('./login.component'); diff --git a/client/src/components/main.jsx b/client/src/components/main.jsx index 027b0e84..0e4c7b28 100644 --- a/client/src/components/main.jsx +++ b/client/src/components/main.jsx @@ -1,6 +1,6 @@ // eslint-disable-next-line const preact = require('preact'); -const { connect } = require('preact-redux'); +const { connect } = require('react-redux'); const LoginContainer = require('./login.container'); const GameContainer = require('./game.container'); diff --git a/client/src/components/menu.container.jsx b/client/src/components/menu.container.jsx index 5e1da54f..bd2fecc1 100644 --- a/client/src/components/menu.container.jsx +++ b/client/src/components/menu.container.jsx @@ -1,4 +1,4 @@ -const { connect } = require('preact-redux'); +const { connect } = require('react-redux'); const Menu = require('./menu.component'); const actions = require('./../actions'); diff --git a/client/src/components/nav.jsx b/client/src/components/nav.jsx index a4b2fee9..b6bdfb03 100644 --- a/client/src/components/nav.jsx +++ b/client/src/components/nav.jsx @@ -1,4 +1,4 @@ -const { connect } = require('preact-redux'); +const { connect } = require('react-redux'); const preact = require('preact'); const actions = require('../actions'); diff --git a/client/src/components/skill.btn.jsx b/client/src/components/skill.btn.jsx index 5627e368..548a8cc1 100644 --- a/client/src/components/skill.btn.jsx +++ b/client/src/components/skill.btn.jsx @@ -1,5 +1,5 @@ const preact = require('preact'); -const { connect } = require('preact-redux'); +const { connect } = require('react-redux'); const actions = require('../actions'); diff --git a/client/src/components/targeting.arrows.jsx b/client/src/components/targeting.arrows.jsx index 37a5771e..b844e56e 100644 --- a/client/src/components/targeting.arrows.jsx +++ b/client/src/components/targeting.arrows.jsx @@ -1,5 +1,5 @@ const preact = require('preact'); -const { connect } = require('preact-redux'); +const { connect } = require('react-redux'); const addState = connect( ({ game, account, resolution }) => ({ game, account, resolution }) diff --git a/client/src/components/team.jsx b/client/src/components/team.jsx index 0af80d00..98110e81 100644 --- a/client/src/components/team.jsx +++ b/client/src/components/team.jsx @@ -1,5 +1,5 @@ const preact = require('preact'); -const { connect } = require('preact-redux'); +const { connect } = require('react-redux'); const range = require('lodash/range'); const actions = require('./../actions'); @@ -94,7 +94,7 @@ function Team(args) { className="menu-cryp" style={ { 'border-color': borderColour || 'whitesmoke' } } onClick={() => selectCryp(cryp.id)} > - {crypAvatar(cryp.name)} + {crypAvatar(cryp.name, cryp.id)}

{cryp.name}

diff --git a/client/src/components/vbox.component.jsx b/client/src/components/vbox.component.jsx index df699660..555694ea 100644 --- a/client/src/components/vbox.component.jsx +++ b/client/src/components/vbox.component.jsx @@ -1,6 +1,6 @@ const preact = require('preact'); const range = require('lodash/range'); -const { connect } = require('preact-redux'); +const { connect } = require('react-redux'); const shapes = require('./shapes'); const { convertItem } = require('./../utils'); diff --git a/client/src/events.jsx b/client/src/events.jsx index 154ab042..57a45058 100644 --- a/client/src/events.jsx +++ b/client/src/events.jsx @@ -1,6 +1,5 @@ const toast = require('izitoast'); const eachSeries = require('async/eachSeries'); -const anime = require('animejs').default; const actions = require('./actions'); const { TIMES } = require('./constants'); @@ -16,26 +15,6 @@ function registerEvents(store) { if (!instance) ws.clearInstanceStateTimeout(); }); - - // // cryp animations - // function crypAnimations() { - // const cryps = document.querySelectorAll('img'); - // if (!cryps.length) return window.requestAnimationFrame(crypAnimations); - // return anime({ - // targets: 'img', - // translateX: () => anime.random(-20, 20), - // translateY: () => anime.random(0, -40), - // rotate: () => anime.random(-15, 15), - // duration: () => anime.random(5000, 6000), - // delay: () => anime.random(0, 1000), - // direction: 'alternate', - // easing: 'linear', - // loop: true, - // }); - // } - // setInterval(crypAnimations, 10000); - // crypAnimations(); - function setPing(ping) { store.dispatch(actions.setPing(ping)); } diff --git a/client/src/utils.jsx b/client/src/utils.jsx index 11be5c13..b280b134 100644 --- a/client/src/utils.jsx +++ b/client/src/utils.jsx @@ -1,5 +1,8 @@ const preact = require('preact'); +const { useEffect } = require('preact/hooks'); + const get = require('lodash/get'); +const anime = require('animejs').default; const shapes = require('./components/shapes'); @@ -53,9 +56,12 @@ function requestAvatar(name) { .then(svg => svg); } -function crypAvatar(name) { +function crypAvatar(name, id) { + useEffect(() => animateCryp(id)); + return ( event.target.setAttribute('src', '/molecules/726.svg')} @@ -63,6 +69,18 @@ function crypAvatar(name) { ); } +function instanceCryp(name, id) { + useEffect(() => animateCryp(id)); + + return ( +
+ ); +} + const NULL_UUID = '00000000-0000-0000-0000-000000000000'; const STATS = { @@ -519,12 +537,29 @@ function convertItem(v) { // return; } +function animateCryp(id) { + const target = document.getElementById(id); + return anime({ + targets: target, + translateX: () => anime.random(-20, 20), + translateY: () => anime.random(0, -40), + rotate: () => anime.random(-15, 15), + duration: () => anime.random(2000, 5000), + delay: () => anime.random(0, 2000), + direction: 'alternate', + easing: 'linear', + loop: true, + }); +} + module.exports = { + animateCryp, stringSort, convertItem, numSort, genAvatar, crypAvatar, + instanceCryp, requestAvatar, eventClasses, getCombatSequence, diff --git a/ops/fix.molecule.holes.js b/ops/fix.molecule.holes.js new file mode 100644 index 00000000..f3c07006 --- /dev/null +++ b/ops/fix.molecule.holes.js @@ -0,0 +1,12 @@ +const fs = require('fs'); + +for (let i = 10000; i >= 0; i--) { + fs.access(`./../client/assets/molecules/${i}.svg`, (err) => { + if (err) { + fs.copyFileSync(`./../client/assets/molecules/726.svg`, `./../client/assets/molecules/${i}.svg`); + console.log('defaulted', i); + } + return true; + }) +} +