Revert "refactor casting spells on the client side (#9921)" (#9948)

This reverts commit 03946e6a87.
This commit is contained in:
Matteo Pagliazzi 2018-02-04 15:50:36 +01:00 committed by GitHub
parent 03946e6a87
commit 3e849ec9a8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 17 deletions

View file

@ -188,12 +188,22 @@ export default {
};
},
mounted () {
this.$root.$on('castEnd', (target, type, $event) => {
this.castEnd(target, type, $event);
});
document.addEventListener('keyup', this.handleKeyUp);
// @TODO: should we abstract the drawer state/local store to a library and mixing combo? We use a similar pattern in equipment
const spellDrawerState = getLocalSetting(CONSTANTS.keyConstants.SPELL_DRAWER_STATE);
if (spellDrawerState === CONSTANTS.valueConstants.DRAWER_CLOSED) {
this.$store.state.spellOptions.spellDrawOpen = false;
}
},
beforeDestroy () {
this.$root.$off('castEnd');
document.removeEventListener('keyup', this.handleKeyUp);
},
computed: {
...mapState({user: 'user.data'}),
openStatus () {
@ -201,6 +211,10 @@ export default {
},
},
methods: {
handleKeyUp (keyEvent) {
if (keyEvent.keyCode !== 27) return;
this.castCancel();
},
drawerToggled (newState) {
this.$store.state.spellOptions.spellDrawOpen = newState;

View file

@ -4,10 +4,6 @@ import isArray from 'lodash/isArray';
// @TODO: Let's separate some of the business logic out of Vue if possible
export default {
methods: {
handleCastCancelKeyUp (keyEvent) {
if (keyEvent.keyCode !== 27) return;
this.castCancel();
},
async castStart (spell) {
if (this.$store.state.spellOptions.castingSpell) {
this.castCancel();
@ -51,13 +47,6 @@ export default {
return true;
});
this.castEnd(tasks, spell.target);
} else {
// If the cast target has to be selected (and can be cancelled)
document.addEventListener('keyup', this.handleCastCancelKeyUp);
this.$root.$on('castEnd', (target, type, $event) => {
this.castEnd(target, type, $event);
});
}
},
async castEnd (target, type) {
@ -72,12 +61,17 @@ export default {
if (target && target.challenge && target.challenge.id) return this.text(this.$t('invalidTarget'));
if (target && target.group && target.group.id) return this.text(this.$t('invalidTarget'));
// @TODO: just call castCancel?
this.$store.state.spellOptions.castingSpell = false;
this.potionClickMode = false;
this.spell.cast(this.user, target);
// User.save(); // @TODO:
let spell = this.spell;
let targetId = target ? target._id : null;
this.castCancel();
this.spell = null;
this.applyingAction = false;
let spellUrl = `/api/v3/user/class/cast/${spell.key}`;
if (targetId) spellUrl += `?targetId=${targetId}`;
@ -129,10 +123,6 @@ export default {
this.spell = null;
document.querySelector('body').style.cursor = 'initial';
this.$store.state.spellOptions.castingSpell = false;
// Remove listeners
this.$root.$off('castEnd');
document.removeEventListener('keyup', this.handleCastCancelKeyUp);
},
},
};