fix banish and invert

This commit is contained in:
ntr 2019-07-19 19:58:08 +10:00
parent 4ea3adcff3
commit 2026530370
4 changed files with 42 additions and 16 deletions

View File

@ -185,7 +185,7 @@
.game-construct.ko { .game-construct.ko {
animation: none; animation: none;
opacity: 0.35; opacity: 0.20;
/* filter: grayscale(100%); /* filter: grayscale(100%);
*/} */}
@ -199,6 +199,7 @@
*/} */}
.game-construct.unfocus.ko { .game-construct.unfocus.ko {
opacity: 0.20;
/* filter: blur(5px) grayscale(100%); /* filter: blur(5px) grayscale(100%);
*/} */}

View File

@ -32,30 +32,46 @@ function createSocket(store) {
return eachSeries(newRes, (r, cb) => { return eachSeries(newRes, (r, cb) => {
if (['Disable', 'TargetKo'].includes(r.event[0])) return cb(); if (['Disable', 'TargetKo'].includes(r.event[0])) return cb();
store.dispatch(actions.setResolution(r));
// convert server enum into anims keywords // convert server enum into anims keywords
// todo make serersideonly // todo make serersideonly
const sequence = animations.getSequence(r); const sequence = animations.getSequence(r);
const timeout = animations.getTime(sequence); const timeout = animations.getTime(sequence);
const anims = animations.getObjects(r, sequence, game, account); const anims = animations.getObjects(r, sequence, game, account);
const text = animations.getText(r, sequence);
store.dispatch(actions.setAnimSource(anims.animSource)); if (sequence.includes('START_SKILL')) store.dispatch(actions.setAnimSource(anims.animSource));
store.dispatch(actions.setAnimTarget(anims.animTarget)); if (sequence.includes('END_SKILL')) store.dispatch(actions.setAnimTarget(anims.animTarget));
if (sequence.includes('POST_SKILL')) {
// timeout to prevent text classes from being added too soon
setTimeout(
() => store.dispatch(actions.setAnimText(text)),
timeout - 1000,
);
}
return setTimeout(() => { return setTimeout(() => {
store.dispatch(actions.setAnimSource(null)); store.dispatch(actions.setAnimSource(null));
store.dispatch(actions.setAnimTarget(null)); store.dispatch(actions.setAnimTarget(null));
store.dispatch(actions.setAnimText(null));
return setTimeout(cb, 50); return setTimeout(cb, 50);
}, 3000); }, timeout);
}, err => { }, err => {
if (err) return console.error(err); if (err) return console.error(err);
// clear animation state
store.dispatch(actions.setAnimSource(null)); store.dispatch(actions.setAnimSource(null));
store.dispatch(actions.setAnimTarget(null)); store.dispatch(actions.setAnimTarget(null));
store.dispatch(actions.setAnimText(null));
store.dispatch(actions.setAnimating(false)); store.dispatch(actions.setAnimating(false));
// stop skipping resolutions
store.dispatch(actions.setSkip(false)); store.dispatch(actions.setSkip(false));
store.dispatch(actions.setResolution(null));
// ws.sendGameState(currentGame.id); // set the game state so resolutions don't fire twice
store.dispatch(actions.setGame(game));
ws.sendGameState(game.id);
return true; return true;
}); });
} }

View File

@ -33,7 +33,7 @@ class Hybrid extends Component {
class="green-one" class="green-one"
cx='50' cx='50'
cy='150' cy='150'
r='10' r="15"
fill={COLOURS.GREEN} fill={COLOURS.GREEN}
stroke="none" stroke="none"
/> />
@ -41,7 +41,7 @@ class Hybrid extends Component {
class="green-two" class="green-two"
cx='250' cx='250'
cy='150' cy='150'
r='10' r="15"
fill={COLOURS.GREEN} fill={COLOURS.GREEN}
stroke="none" stroke="none"
/> />
@ -49,7 +49,7 @@ class Hybrid extends Component {
class="bluewhite-one" class="bluewhite-one"
cx='150' cx='150'
cy='50' cy='50'
r='10' r="15"
fill={COLOURS.BLUE} fill={COLOURS.BLUE}
stroke="none" stroke="none"
/> />
@ -65,7 +65,7 @@ class Hybrid extends Component {
class="bluewhite-two" class="bluewhite-two"
cx='150' cx='150'
cy='250' cy='250'
r='10' r="15"
fill={COLOURS.BLUE} fill={COLOURS.BLUE}
stroke="none" stroke="none"
/> />
@ -77,7 +77,6 @@ class Hybrid extends Component {
fill={COLOURS.WHITE} fill={COLOURS.WHITE}
stroke="none" stroke="none"
/> />
</g> </g>
</svg> </svg>
); );
@ -100,6 +99,7 @@ class Hybrid extends Component {
})); }));
this.animations.push(anime({ this.animations.push(anime({
r: [10, anime.random(10, 30)],
targets: ['#hybrid circle.green-one'], targets: ['#hybrid circle.green-one'],
cx: [50, 250, 50, 250], cx: [50, 250, 50, 250],
delay: TIMES.TARGET_DELAY_MS, delay: TIMES.TARGET_DELAY_MS,
@ -109,6 +109,7 @@ class Hybrid extends Component {
})); }));
this.animations.push(anime({ this.animations.push(anime({
r: [10, anime.random(10, 30)],
targets: ['#hybrid circle.green-two'], targets: ['#hybrid circle.green-two'],
cy: [250, 50, 250, 50], cy: [250, 50, 250, 50],
delay: TIMES.TARGET_DELAY_MS, delay: TIMES.TARGET_DELAY_MS,
@ -118,6 +119,7 @@ class Hybrid extends Component {
})); }));
this.animations.push(anime({ this.animations.push(anime({
r: [10, anime.random(10, 30)],
targets: ['#hybrid circle.bluewhite-one'], targets: ['#hybrid circle.bluewhite-one'],
fill: [COLOURS.WHITE, COLOURS.BLUE], fill: [COLOURS.WHITE, COLOURS.BLUE],
cy: [50, 250, 50, 250], cy: [50, 250, 50, 250],
@ -128,6 +130,7 @@ class Hybrid extends Component {
})); }));
this.animations.push(anime({ this.animations.push(anime({
r: [10, anime.random(10, 30)],
targets: ['#hybrid circle.bluewhite-two'], targets: ['#hybrid circle.bluewhite-two'],
cx: [250, 50, 250, 50], cx: [250, 50, 250, 50],
fill: [COLOURS.WHITE, COLOURS.BLUE], fill: [COLOURS.WHITE, COLOURS.BLUE],

View File

@ -88,8 +88,8 @@ class ConstructAvatar extends Component {
} }
switch (animTarget.skill) { switch (animTarget.skill) {
case 'banish': return banish(construct.id); case 'Banish': return banish(construct.id);
case 'invert': return invert(construct.id); case 'Invert': return invert(construct.id);
default: return null; default: return null;
} }
}; };
@ -112,8 +112,8 @@ class ConstructAvatar extends Component {
this.resetAnimations(); this.resetAnimations();
} }
shouldComponentUpdate({ animSource, construct }) { shouldComponentUpdate({ animSource, animTarget, construct }) {
if (animSource === this.props.animSource) { if (animSource === this.props.animSource && animTarget === this.props.animTarget) {
// console.warn(construct.name, 'thinks its same props') // console.warn(construct.name, 'thinks its same props')
return false; return false;
} }
@ -128,12 +128,18 @@ class ConstructAvatar extends Component {
} }
// this is the target // this is the target
// if (animTarget && animTarget.constructId === construct.id) return true; if (animTarget && animTarget.constructId === construct.id) {
// console.warn(construct.name, 'should update')
return true;
}
// we were previously doing src anim // we were previously doing src anim
const prevSrc = this.props.animSource && this.props.animSource.constructId === construct.id; const prevSrc = this.props.animSource && this.props.animSource.constructId === construct.id;
if (prevSrc && !animSource) return true; if (prevSrc && !animSource) return true;
const prevTarget = this.props.animTarget && this.props.animTarget.constructId === construct.id;
if (prevTarget && !animTarget) return true;
// console.warn(construct.name, 'not updating'); // console.warn(construct.name, 'not updating');
return false; return false;