diff --git a/client/src/components/animations.jsx b/client/src/components/animations.jsx index ea580f56..f4b1e76c 100644 --- a/client/src/components/animations.jsx +++ b/client/src/components/animations.jsx @@ -143,14 +143,14 @@ function animations(props) { // Block Base case 'Block': return ; + case 'Clutch': return false; case 'Electrify': return ; case 'Electrocute': return ; case 'ElectrocuteTick': return false; case 'Parry': return ; + case 'Purify': return ; case 'Recharge': return ; case 'Reflect': return ; - case 'Purify': return ; - case 'Clutch': return false; default: return false; } diff --git a/client/src/components/anims/purify.jsx b/client/src/components/anims/purify.jsx index 33424399..578224b1 100644 --- a/client/src/components/anims/purify.jsx +++ b/client/src/components/anims/purify.jsx @@ -2,39 +2,72 @@ const preact = require('preact'); const { Component } = require('preact'); const anime = require('animejs').default; -const { TIMES } = require('../../constants'); +const { TIMES, COLOURS } = require('../../constants'); + +function projectile(x, y, radius, colour) { + return ( + + ); +} class Purify extends Component { constructor() { super(); this.animations = []; + const points = [ + [128, 168], + [80, 240], + [176, 240], + [212, 216], + [128, 96], + [44, 216], + [80, 240], + [248, 192], + [128, 24], + [8, 192], + ]; + this.charges = points.map(coord => projectile(coord[0], coord[1], 12, COLOURS.GREEN)); } render({ team }) { return ( - - + + + - - - + + + + + + + {this.charges} + ); } @@ -44,19 +77,27 @@ class Purify extends Component { targets: ['#purify'], opacity: [ { value: 1, delay: TIMES.TARGET_DELAY_MS, duration: TIMES.TARGET_DURATION_MS * 0.2 }, - { value: 0, delay: TIMES.TARGET_DURATION_MS * 0.6, duration: TIMES.TARGET_DURATION_MS * 0.3 }, + { value: 0, delay: TIMES.TARGET_DURATION_MS * 0.6, duration: TIMES.TARGET_DURATION_MS * 0.2 }, ], easing: 'easeInOutSine', })); + this.animations.push(anime({ + targets: ['#block'], + opacity: [ + { value: 0, delay: TIMES.TARGET_DELAY_MS, duration: TIMES.TARGET_DURATION_MS }, + ], + easing: 'easeInOutSine', + })); this.animations.push(anime({ - targets: ['#purifyFilter feTurbulence', ' #purifyFilter feDisplacementMap'], - baseFrequency: 2, - scale: 10, - numOctaves: 5, - easing: 'easeOutSine', - + targets: ['#charges'], + opacity: [ + { value: 1, duration: TIMES.TARGET_DELAY_MS + TIMES.TARGET_DURATION_MS * 0.2 }, + ], + easing: 'easeInOutSine', + cx: 128, + cy: 24, delay: TIMES.TARGET_DELAY_MS, duration: TIMES.TARGET_DURATION_MS, }));