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