Merge branch 'master' into skilltiers

This commit is contained in:
Mashy 2019-05-27 14:30:15 +10:00
commit fab2d8caf1
25 changed files with 89 additions and 70 deletions

View File

@ -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 {

View File

@ -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 {

View File

@ -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"
}
}

View File

@ -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');

View File

@ -1,4 +1,4 @@
const { connect } = require('preact-redux');
const { connect } = require('react-redux');
const CrypSpawnButton = require('./cryp.spawn.button');

View File

@ -1,4 +1,4 @@
const { connect } = require('preact-redux');
const { connect } = require('react-redux');
const actions = require('../actions');

View File

@ -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) {
<figure
className="img"
onClick={() => selectSkillTarget(cryp.id)} >
{crypAvatar(cryp.name)}
{crypAvatar(cryp.name, cryp.id)}
{combatTextEl}
{anim}
</figure>

View File

@ -1,4 +1,4 @@
const { connect } = require('preact-redux');
const { connect } = require('react-redux');
const Header = require('./header.component');

View File

@ -1,4 +1,4 @@
const { connect } = require('preact-redux');
const { connect } = require('react-redux');
const actions = require('../actions');
const Info = require('./info.component');

View File

@ -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');

View File

@ -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(

View File

@ -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 (
<div key={cryp.id} className={crypClass} onClick={onClick} >
{crypAvatar(cryp.name)}
{instanceCryp(cryp.name, cryp.id)}
<h2 className="name" >{cryp.name}</h2>
<div className="skills" onMouseOver={e => hoverInfo(e, 'crypSkills')} >
{skills}

View File

@ -1,4 +1,4 @@
const { connect } = require('preact-redux');
const { connect } = require('react-redux');
const preact = require('preact');
const range = require('lodash/range');

View File

@ -1,4 +1,4 @@
const { connect } = require('preact-redux');
const { connect } = require('react-redux');
const preact = require('preact');
const { NULL_UUID } = require('./../utils');

View File

@ -1,4 +1,4 @@
const { connect } = require('preact-redux');
const { connect } = require('react-redux');
const Login = require('./login.component');

View File

@ -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');

View File

@ -1,4 +1,4 @@
const { connect } = require('preact-redux');
const { connect } = require('react-redux');
const Menu = require('./menu.component');
const actions = require('./../actions');

View File

@ -1,4 +1,4 @@
const { connect } = require('preact-redux');
const { connect } = require('react-redux');
const preact = require('preact');
const actions = require('../actions');

View File

@ -1,5 +1,5 @@
const preact = require('preact');
const { connect } = require('preact-redux');
const { connect } = require('react-redux');
const actions = require('../actions');

View File

@ -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 })

View File

@ -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)}
<h2>{cryp.name}</h2>
</div>
</div>

View File

@ -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');

View File

@ -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));
}

View File

@ -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 (
<img
id={id}
src={`/molecules/${genAvatar(name)}.svg`}
height="500"
onError={event => event.target.setAttribute('src', '/molecules/726.svg')}
@ -63,6 +69,18 @@ function crypAvatar(name) {
);
}
function instanceCryp(name, id) {
useEffect(() => animateCryp(id));
return (
<div
className="avatar"
id={id}
style={{'background-image': `url(/molecules/${genAvatar(name)}.svg)`}}
/>
);
}
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,

12
ops/fix.molecule.holes.js Normal file
View File

@ -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;
})
}