mnml/client/src/animations.utils.jsx
2019-12-10 20:57:19 +10:00

50 lines
1.6 KiB
JavaScript

const actions = require('./actions');
const { TIMES } = require('./constants');
function setAnimations(r, store) {
const { focus, event: [type, variant] } = r;
if (type === 'HitAoe') {
const { construct } = variant;
const aoeFocus = focus.concat(construct);
store.dispatch(actions.setResolution(null));
store.dispatch(actions.setAnimFocus(aoeFocus));
store.dispatch(actions.setAnimTarget(r));
return setTimeout(() => store.dispatch(actions.setAnimSource(null)), TIMES.SOURCE_DURATION_MS);
}
store.dispatch(actions.setAnimFocus(focus));
if (type === 'Cast') {
store.dispatch(actions.setResolution(null));
store.dispatch(actions.setAnimSource(r));
return setTimeout(() => store.dispatch(actions.setAnimSource(null)), TIMES.SOURCE_DURATION_MS);
}
if (type === 'Hit') {
store.dispatch(actions.setResolution(null));
store.dispatch(actions.setAnimTarget(r));
return setTimeout(() => store.dispatch(actions.setAnimTarget(null)), TIMES.TARGET_DURATION_MS);
}
return store.dispatch(actions.setResolution(r));
}
function clearAnimations(store) {
store.dispatch(actions.setAnimSkill(null));
store.dispatch(actions.setAnimSource(null));
store.dispatch(actions.setAnimTarget(null));
store.dispatch(actions.setResolution(null));
store.dispatch(actions.setAnimating(false));
store.dispatch(actions.setGameEffectInfo(null));
store.dispatch(actions.setAnimFocus(null));
}
module.exports = {
setAnimations,
clearAnimations,
};