diff --git a/client/assets/styles/colours.less b/client/assets/styles/colours.less index ea51f3ff..39b757f3 100644 --- a/client/assets/styles/colours.less +++ b/client/assets/styles/colours.less @@ -73,13 +73,13 @@ svg { } .red-blue-border { - animation: rb 2s cubic-bezier(1, 0, 0, 1) 0s infinite alternate; + animation: rb 2s cubic-bezier(0.5, 0, 0.5, 1) 0s infinite alternate; } .red-green-border { - animation: rg 2s cubic-bezier(1, 0, 0, 1) 0s infinite alternate; + animation: rg 2s cubic-bezier(0.5, 0, 0.5, 1) 0s infinite alternate; } .blue-green-border { - animation: bg 2s cubic-bezier(1, 0, 0, 1) 0s infinite alternate; + animation: bg 2s cubic-bezier(0.5, 0, 0.5, 1) 0s infinite alternate; } @keyframes rg { diff --git a/client/src/components/buttons.jsx b/client/src/components/buttons.jsx new file mode 100644 index 00000000..4425e93f --- /dev/null +++ b/client/src/components/buttons.jsx @@ -0,0 +1,38 @@ +module.exports = { // This will need to be edited if we change server recipes + // Attack + Strike: () => 'red-border', + Blast: () => 'blue-border', + Heal: () => 'green-border', + Chaos: () => 'red-blue-border', + Slay: () => 'red-green-border', + Siphon: () => 'blue-green-border', + // Stun + Link: () => 'blue-greenborder', + Bash: () => 'red-border', + Sleep: () => 'green-border', + Ruin: () => 'blue-border', + Break: () => 'red-green-border', + Banish: () => 'red-blue-border', + // Block + Counter: () => 'red-border', + Purify: () => 'green-border', + Electrify: () => 'blue-border', + Sustain: () => 'red-green-border', + Reflect: () => 'blue-green-border', + Recharge: () => 'blue-red-border', + // Buff + Intercept: () => 'red-border', + Triage: () => 'green-border', + Haste: () => 'red-green-border', + Absorb: () => 'blue-border', + Hybrid: () => 'blue-green-border', + Amplify: () => 'red-blue-border', + // Debuff + Restrict: () => 'red-border', + Purge: () => 'green-border', + Silence: () => 'blue-border', + Curse: () => 'red-green-border', + Decay: () => 'blue-green-border', + Invert: () => 'red-blue-border', + +}; diff --git a/client/src/components/instance.constructs.jsx b/client/src/components/instance.constructs.jsx index fce829f5..bc7e005f 100644 --- a/client/src/components/instance.constructs.jsx +++ b/client/src/components/instance.constructs.jsx @@ -2,10 +2,12 @@ const { connect } = require('preact-redux'); const preact = require('preact'); const range = require('lodash/range'); +const buttons = require('./buttons'); const shapes = require('./shapes'); const { STATS } = require('../utils'); const { ConstructAvatar } = require('./construct'); const actions = require('../actions'); +const { removeTier } = require('../utils'); const addState = connect( function receiveState(state) { @@ -130,7 +132,14 @@ function Construct(props) { // const action = skill ? '' : 'action'; const equipping = skillList.includes(vbox.bound[itemEquip]) && !skill; - const classes = `${equipping ? 'equipping' : ''} ${!skill ? 'empty' : ''}`; + const border = () => { + if (!skill) return ''; + const borderFn = buttons[removeTier(skill.skill)]; + if (!borderFn) return ''; + return borderFn(); + }; + + const classes = `${equipping ? 'equipping' : ''} ${!skill ? 'empty' : ''} ${border()}`; return (