From 5c35c2d1953f07bbe58bc1a9dd6bab5fb7999a9c Mon Sep 17 00:00:00 2001 From: ntr Date: Tue, 23 Jul 2019 13:42:23 +1000 Subject: [PATCH] icons wip --- client/assets/styles/instance.css | 44 +++++-------------- client/assets/styles/vbox.less | 25 ++++++++--- client/src/components/instance.constructs.jsx | 7 ++- client/src/components/nav.jsx | 16 ------- client/src/components/shapes.jsx | 35 +++++++++++++-- client/src/components/vbox.component.jsx | 8 ++-- server/src/vbox.rs | 2 +- 7 files changed, 70 insertions(+), 67 deletions(-) diff --git a/client/assets/styles/instance.css b/client/assets/styles/instance.css index 71d0b229..a34e7c22 100644 --- a/client/assets/styles/instance.css +++ b/client/assets/styles/instance.css @@ -192,29 +192,29 @@ } .construct-list .skills { + padding: 0 0.5em; grid-area: skills; - display: flex; - border-width: 0px; + + display: grid; + grid-template-columns: repeat(3, 1fr); + grid-gap: 0 0.5em; } -.construct-list .skills button { - flex: 1; - /*border: 1px solid #222;*/ - border: none; +.construct-list .skills button.empty { + border-style: dashed; } .construct-list .specs { margin-top: 1em; grid-area: specs; - display: flex; - flex: 1; - justify-content: center; - border-width: 0px; + + display: grid; + grid-template-columns: repeat(3, 1fr); + grid-gap: 0 0.5em; } .construct-list .specs figure { flex: 1; - border: 0; align-items: center; text-align: center; } @@ -294,19 +294,6 @@ flex: 1 0 100%; } -.equip .skills { - flex: 1; - border: 2px solid #222; -} - -.equip .skills button { - color: whitesmoke; - font-size: 1em; - padding: 0.2em; - border-width: 0px; - margin-bottom: 0.5em; -} - .equipping { position: relative; } @@ -349,11 +336,6 @@ } } -.equip .specs figure { - border: 0; - text-align: center; -} - .equip-spec { position: relative; stroke: #333; @@ -372,10 +354,6 @@ opacity: 0; } -.equip .specs figcaption { - font-size: 75%; -} - .thresholds { display: flex; flex-flow: column; diff --git a/client/assets/styles/vbox.less b/client/assets/styles/vbox.less index e8a47386..734c841d 100644 --- a/client/assets/styles/vbox.less +++ b/client/assets/styles/vbox.less @@ -15,17 +15,17 @@ .vbox-colours { display: grid; grid-template-columns: repeat(6, 1fr); - grid-gap: 1em 2em; + grid-gap: 0.5em 1em; align-items: center; - margin-bottom: 1em; + margin-bottom: 0.5em; } .vbox-items { display: grid; grid-template-columns: repeat(3, 1fr); - grid-gap: 1em 2em; + grid-gap: 0.5em 1em; align-items: center; - margin-bottom: 1em; + margin-bottom: 0.5em; button { width: 100%; @@ -38,6 +38,8 @@ background-color: @gray; border-width: 0; + height: 3em; + :active, :hover, :focus { color: white; } @@ -62,9 +64,11 @@ } button { - height: 3em; + height: 4em; margin: 0; + text-transform: none; + &.empty { border-style: dashed; } @@ -79,4 +83,15 @@ svg { stroke: none; } + + // figures don't scale well + figure { + svg { + height: 2em; + } + + figcaption { + line-height: initial; + } + } } diff --git a/client/src/components/instance.constructs.jsx b/client/src/components/instance.constructs.jsx index 7ffe9786..b2c27234 100644 --- a/client/src/components/instance.constructs.jsx +++ b/client/src/components/instance.constructs.jsx @@ -125,7 +125,7 @@ function Construct(props) { // const action = skill ? '' : 'action'; const equip = skillList.includes(vbox.bound[itemEquip]) && !skill ? 'equipping' : ''; - const classes = `${equip}`; + const classes = `${equip} ${!skill ? 'empty' : ''}`; return ( ); }); diff --git a/client/src/components/nav.jsx b/client/src/components/nav.jsx index 7a6aff29..b9a057c4 100644 --- a/client/src/components/nav.jsx +++ b/client/src/components/nav.jsx @@ -1,15 +1,9 @@ const { connect } = require('preact-redux'); const preact = require('preact'); -const { Fragment } = require('preact'); -const { postData } = require('../utils'); -console.log(postData); const actions = require('../actions'); const AccountStatus = require('./account.status'); -const testGame = process.env.NODE_ENV === 'development' && require('./../test.game'); -const testInstance = process.env.NODE_ENV === 'development' && require('./../test.instance'); - const addState = connect( function receiveState(state) { const { @@ -115,15 +109,6 @@ function Nav(args) { return }); - const haxSection = process.env.NODE_ENV === 'development' - ? ( - -

Hax

- - -
) - : null; - const canJoin = team.some(c => !c); return ( @@ -134,7 +119,6 @@ function Nav(args) {
{joined} - {haxSection} ); } diff --git a/client/src/components/shapes.jsx b/client/src/components/shapes.jsx index 3f70c894..0eb0ae7d 100644 --- a/client/src/components/shapes.jsx +++ b/client/src/components/shapes.jsx @@ -1,3 +1,5 @@ +const preact = require('preact'); + const circle = require('./svgs/circle'); const diamond = require('./svgs/diamond'); const hexagon = require('./svgs/hexagon'); @@ -20,6 +22,10 @@ module.exports = { saw, vboxColour, + Red: () => vboxColour('red'), + Green: () => vboxColour('green'), + Blue: () => vboxColour('blue'), + // stats RedLife: () => square(['red']), GreenLife: () => square(['green']), @@ -29,11 +35,27 @@ module.exports = { BluePower: () => circle(['blue']), Speed: () => triangle(['white']), + // specs // Base - Power: () => circle(['white']), - Life: () => square(['white']), - // Speed, + Power: () => +
+ {circle(['white'])} +
Power
+
, + + Life: () => +
+ {square(['white'])} +
Life
+
, + + // Speed: + //
+ // {triangle(['white'])} + //
Speed
+ //
, + // Lifes Upgrades LifeGG: () => square(['green']), @@ -52,7 +74,12 @@ module.exports = { PowerRB: () => circle(['red', 'blue']), // Speed Upgrades - SpeedGG: () => triangle(['green']), + SpeedGG: () => +
+ {triangle(['green'])} +
Speed
+
, + SpeedRR: () => triangle(['red']), SpeedBB: () => triangle(['blue']), SpeedRG: () => triangle(['red', 'green']), diff --git a/client/src/components/vbox.component.jsx b/client/src/components/vbox.component.jsx index 65c713ab..e0acb496 100644 --- a/client/src/components/vbox.component.jsx +++ b/client/src/components/vbox.component.jsx @@ -171,12 +171,12 @@ function Vbox(args) { return setVboxSelected([group, index]); } - if (['Red', 'Green', 'Blue'].includes(v)) { + if (shapes[v]) { return ( ); } @@ -271,13 +271,13 @@ function Vbox(args) { const highlighted = combiner.indexOf(i) > -1; const classes = `${highlighted ? 'highlight' : ''}`; - if (['Red', 'Green', 'Blue'].includes(v)) { + if (shapes[v]) { return ( ); } diff --git a/server/src/vbox.rs b/server/src/vbox.rs index 866bed49..4e2e1a96 100644 --- a/server/src/vbox.rs +++ b/server/src/vbox.rs @@ -88,7 +88,7 @@ impl Vbox { }; let dist = WeightedIndex::new(items.iter().map(|item| item.1)).unwrap(); - iter::repeat_with(|| { + iter::repeat_with(|| { items[dist.sample(&mut rng)].0}).take(match item_type { ItemType::Colours => 6, _ => 3,