From e55705a841aea8f203c85977e8818e2528f7757e Mon Sep 17 00:00:00 2001 From: ntr Date: Tue, 28 May 2019 17:46:35 +1000 Subject: [PATCH] wip --- client/assets/styles/styles.css | 2 +- client/src/components/instance.constructs.jsx | 18 +------ client/src/components/svgs/square.jsx | 27 ++++++++--- client/src/utils.jsx | 13 +++++ server/src/item.rs | 24 ---------- server/src/spec.rs | 47 ------------------- 6 files changed, 36 insertions(+), 95 deletions(-) diff --git a/client/assets/styles/styles.css b/client/assets/styles/styles.css index 55ca7ec6..0b13c08e 100644 --- a/client/assets/styles/styles.css +++ b/client/assets/styles/styles.css @@ -475,7 +475,7 @@ figure.gray { stroke-color: #333; } -.stat-icon { +.stats svg, .specs svg { height: 2em; stroke-width: 5px; fill: none; diff --git a/client/src/components/instance.constructs.jsx b/client/src/components/instance.constructs.jsx index d83f0f00..32659125 100644 --- a/client/src/components/instance.constructs.jsx +++ b/client/src/components/instance.constructs.jsx @@ -3,7 +3,7 @@ const preact = require('preact'); const range = require('lodash/range'); const shapes = require('./shapes'); -const { STATS, instanceConstruct } = require('../utils'); +const { STATS, instanceConstruct, convertColourCode } = require('../utils'); const actions = require('../actions'); const addState = connect( @@ -176,7 +176,7 @@ function Construct(props) { onClick={specClick} onDblClick={specDblClick} onMouseOver={e => hoverInfo(e, s)} > - {shapes[specInfo.values.shape.toLowerCase()](`stat-icon ${specInfo.values.colour}`)} + {shapes[specInfo.values.shape.toLowerCase()](convertColourCode(specInfo.values.colour))}
{s}
); @@ -191,20 +191,6 @@ function Construct(props) { const activeId = activeConstruct ? activeConstruct.id : false; const constructClass = activeId === construct.id ? 'instance-construct-active' : 'instance-construct'; - // const cTotal = construct.colours.red + construct.colours.blue + construct.colours.green; - // const colours = mapValues(construct.colours, c => { - // if (cTotal === 0) return 245; - // return Math.floor(c / cTotal * 255); - // }); - // const alpha = cTotal === 0 ? 1 : 0.75; - // const thickness = total => { - // if (total < 3) return 1; - // if (total < 6) return 2; - // if (total < 9) return 3; - // return 4; - // }; - // const border = { border: `${thickness(cTotal)}px solid rgba(${colours.red}, ${colours.green}, ${colours.blue}, ${alpha})` }; - return (
{instanceConstruct(construct.name, construct.id)} diff --git a/client/src/components/svgs/square.jsx b/client/src/components/svgs/square.jsx index 60e86f17..65f4b18a 100644 --- a/client/src/components/svgs/square.jsx +++ b/client/src/components/svgs/square.jsx @@ -1,14 +1,27 @@ const preact = require('preact'); -module.exports = function triangle(classes) { +module.exports = function square(colours) { return ( - - - - - + viewBox="0 0 199.33 199.99" style="enable-background:new 0 0 199.33 199.99;" > + + + + + + + + + + + + + + + + + + ); } diff --git a/client/src/utils.jsx b/client/src/utils.jsx index 879c8111..15d1dc06 100644 --- a/client/src/utils.jsx +++ b/client/src/utils.jsx @@ -454,6 +454,18 @@ function convertItem(v) { // return; } +function convertColourCode(cc) { + if (cc === 'RR') return ['red', 'red']; + if (cc === 'GG') return ['green', 'green']; + if (cc === 'BB') return ['blue', 'blue']; + if (cc === 'RG') return ['red', 'green']; + if (cc === 'RB') return ['red', 'blue']; + if (cc === 'GB') return ['green', 'blue']; + if (cc === 'W') return ['white', 'white']; + + return ['gray', 'gray']; +} + module.exports = { animateConstruct, stringSort, @@ -468,6 +480,7 @@ module.exports = { getCombatSequence, getCombatText, resoConstructHealth, + convertColourCode, NULL_UUID, STATS, COLOUR_ICONS, diff --git a/server/src/item.rs b/server/src/item.rs index a5f3f0de..295507d5 100644 --- a/server/src/item.rs +++ b/server/src/item.rs @@ -1066,30 +1066,6 @@ pub fn get_combos() -> Vec { return combinations; } -#[derive(Debug,Clone,Copy,Serialize,Deserialize)] -pub enum Shape { - Circle, - Diamond, - Hexagon, - Pentagon, - Square, - Squircle, - Triangle, - Saw, - VboxColour, -} - -#[derive(Debug,Clone,Copy,Serialize,Deserialize)] -pub enum ItemColour { - W, - RR, - GG, - BB, - RG, - RB, - GB, -} - #[derive(Debug,Clone,Serialize,Deserialize)] pub struct ItemInfo { pub item: Item, diff --git a/server/src/spec.rs b/server/src/spec.rs index e727170b..72575664 100644 --- a/server/src/spec.rs +++ b/server/src/spec.rs @@ -1,8 +1,6 @@ use construct::{Stat, Colours}; -use item::{Shape, ItemColour}; use util::{IntPct}; - #[derive(Debug,Clone,Serialize,Deserialize)] pub struct SpecBonus { pub req: Colours, @@ -22,11 +20,8 @@ impl SpecBonus { pub struct SpecValues { pub base: u64, pub bonuses: Vec, - pub shape: Shape, - pub colour: ItemColour, } - #[derive(Debug,Copy,Clone,Serialize,Deserialize,PartialEq,PartialOrd,Ord,Eq)] pub enum Spec { Speed, @@ -87,16 +82,12 @@ impl Spec { pub fn values(&self) -> SpecValues { match *self { Spec::Power => SpecValues { - colour: ItemColour::W, base: 5, - shape: Shape::Circle, bonuses: vec![] }, Spec::PowerRRI => SpecValues { - colour: ItemColour::RR, base: 10, - shape: Shape::Circle, bonuses: vec![ SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 10 }, SpecBonus { req: Colours { red: 10, green: 0, blue: 0 }, bonus: 20 }, @@ -105,9 +96,7 @@ impl Spec { }, Spec::PowerGGI => SpecValues { - colour: ItemColour::GG, base: 10, - shape: Shape::Circle, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 10 }, SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 20 }, @@ -116,9 +105,7 @@ impl Spec { }, Spec::PowerBBI => SpecValues { - colour: ItemColour::BB, base: 10, - shape: Shape::Circle, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 10 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 20 }, @@ -127,9 +114,7 @@ impl Spec { }, Spec::PowerRGI => SpecValues { - colour: ItemColour::RG, base: 5, - shape: Shape::Circle, bonuses: vec![ SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 10 }, SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 15 }, @@ -138,9 +123,7 @@ impl Spec { }, Spec::PowerGBI => SpecValues { - colour: ItemColour::GB, base: 5, - shape: Shape::Circle, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 10 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 15 }, @@ -149,9 +132,7 @@ impl Spec { }, Spec::PowerRBI => SpecValues { - colour: ItemColour::RB, base: 5, - shape: Shape::Circle, bonuses: vec![ SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 10 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 15 }, @@ -160,16 +141,12 @@ impl Spec { }, Spec::Speed => SpecValues { - colour: ItemColour::W, base: 5, - shape: Shape::Triangle, bonuses: vec![] }, Spec::SpeedRRI => SpecValues { - colour: ItemColour::RR, base: 10, - shape: Shape::Triangle, bonuses: vec![ SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 10 }, SpecBonus { req: Colours { red: 10, green: 0, blue: 0 }, bonus: 20 }, @@ -178,9 +155,7 @@ impl Spec { }, Spec::SpeedGGI => SpecValues { - colour: ItemColour::GG, base: 10, - shape: Shape::Triangle, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 10 }, SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 20 }, @@ -189,9 +164,7 @@ impl Spec { }, Spec::SpeedBBI => SpecValues { - colour: ItemColour::BB, base: 10, - shape: Shape::Triangle, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 10 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 20 }, @@ -200,9 +173,7 @@ impl Spec { }, Spec::SpeedRGI => SpecValues { - colour: ItemColour::RG, base: 5, - shape: Shape::Triangle, bonuses: vec![ SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 10 }, SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 15 }, @@ -211,9 +182,7 @@ impl Spec { }, Spec::SpeedGBI => SpecValues { - colour: ItemColour::GB, base: 5, - shape: Shape::Triangle, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 10 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 15 }, @@ -222,9 +191,7 @@ impl Spec { }, Spec::SpeedRBI => SpecValues { - colour: ItemColour::RB, base: 5, - shape: Shape::Triangle, bonuses: vec![ SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 10 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 15 }, @@ -233,15 +200,11 @@ impl Spec { }, Spec::Life => SpecValues { - colour: ItemColour::W, base: 5, - shape: Shape::Square, bonuses: vec![]}, Spec::LifeRRI => SpecValues { - colour: ItemColour::RR, base: 10, - shape: Shape::Square, bonuses: vec![ SpecBonus { req: Colours { red: 5, green: 0, blue: 0 }, bonus: 10 }, SpecBonus { req: Colours { red: 10, green: 0, blue: 0 }, bonus: 20 }, @@ -250,9 +213,7 @@ impl Spec { }, Spec::LifeGGI => SpecValues { - colour: ItemColour::GG, base: 10, - shape: Shape::Square, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 5, blue: 0 }, bonus: 10 }, SpecBonus { req: Colours { red: 0, green: 10, blue: 0 }, bonus: 20 }, @@ -261,9 +222,7 @@ impl Spec { }, Spec::LifeBBI => SpecValues { - colour: ItemColour::BB, base: 10, - shape: Shape::Square, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 0, blue: 5 }, bonus: 10 }, SpecBonus { req: Colours { red: 0, green: 0, blue: 10 }, bonus: 20 }, @@ -272,9 +231,7 @@ impl Spec { }, Spec::LifeRGI => SpecValues { - colour: ItemColour::RG, base: 5, - shape: Shape::Square, bonuses: vec![ SpecBonus { req: Colours { red: 2, green: 2, blue: 0 }, bonus: 10 }, SpecBonus { req: Colours { red: 5, green: 5, blue: 0 }, bonus: 15 }, @@ -284,9 +241,7 @@ impl Spec { Spec::LifeGBI => SpecValues { - colour: ItemColour::GB, base: 5, - shape: Shape::Square, bonuses: vec![ SpecBonus { req: Colours { red: 0, green: 2, blue: 2 }, bonus: 10 }, SpecBonus { req: Colours { red: 0, green: 5, blue: 5 }, bonus: 15 }, @@ -295,9 +250,7 @@ impl Spec { }, Spec::LifeRBI => SpecValues { - colour: ItemColour::RB, base: 5, - shape: Shape::Square, bonuses: vec![ SpecBonus { req: Colours { red: 2, green: 0, blue: 2 }, bonus: 10 }, SpecBonus { req: Colours { red: 5, green: 0, blue: 5 }, bonus: 15 },