Don't show shield when previewing two-handed weapon (fixes #9495) (#9607)

* initial commit to not show shield when previewing two-hand weapon

* revert error made

* update to fix all combinations of equipping / trying two-handed weapons

* clarify conditional logic

* refactor to let avatar check for twoHanded display/hide logic
This commit is contained in:
Julius Jung
2017-12-05 15:11:19 -05:00
committed by Sabe Jones
parent 444d6889de
commit a5a985fd00

View File

@@ -30,8 +30,8 @@
span(:class="getGearClass('head')")
span(:class="getGearClass('headAccessory')")
span(:class="'hair_flower_' + member.preferences.hair.flower")
span(:class="getGearClass('shield')")
span(:class="getGearClass('weapon')")
span(v-if="!hideGear('shield')", :class="getGearClass('shield')")
span(v-if="!hideGear('weapon')", :class="getGearClass('weapon')")
// Resting
span.zzz(v-if="member.preferences.sleep")
@@ -71,6 +71,8 @@
</style>
<script>
import { mapState } from 'client/libs/store';
import ClassBadge from 'client/components/members/classBadge';
export default {
@@ -117,6 +119,9 @@ export default {
},
},
computed: {
...mapState({
flatGear: 'content.gear.flat',
}),
hasClass () {
return this.$store.getters['members:hasClass'](this.member);
},
@@ -179,6 +184,20 @@ export default {
return result;
},
hideGear (gearType) {
if (gearType === 'weapon') {
let equippedWeapon = this.member.items.gear[this.costumeClass][gearType];
let equippedIsTwoHanded = this.flatGear[equippedWeapon].twoHanded;
let hasOverrideShield = this.overrideAvatarGear && this.overrideAvatarGear.shield;
return equippedIsTwoHanded && hasOverrideShield;
} else if (gearType === 'shield') {
let overrideWeapon = this.overrideAvatarGear && this.overrideAvatarGear.weapon;
let overrideIsTwoHanded = overrideWeapon && this.flatGear[overrideWeapon].twoHanded;
return overrideIsTwoHanded;
}
},
castEnd (e) {
if (!this.$store.state.spellOptions.castingSpell) return;
this.$root.$emit('castEnd', this.member, 'user', e);