WIP(shop): show customs in buy modal

This commit is contained in:
Sabe Jones
2024-03-14 17:29:15 -05:00
parent a921a8bc61
commit 70434b17cc
3 changed files with 69 additions and 12 deletions

View File

@@ -35,7 +35,7 @@
<span :class="[skinClass, specialMountClass]"></span> <span :class="[skinClass, specialMountClass]"></span>
<!-- eslint-disable max-len--> <!-- eslint-disable max-len-->
<span <span
:class="[member.preferences.size + '_shirt_' + member.preferences.shirt, specialMountClass]" :class="[shirtClass, specialMountClass]"
></span> ></span>
<!-- eslint-enable max-len--> <!-- eslint-enable max-len-->
<span :class="['head_0', specialMountClass]"></span> <span :class="['head_0', specialMountClass]"></span>
@@ -46,12 +46,10 @@
<template <template
v-for="type in ['bangs', 'base', 'mustache', 'beard']" v-for="type in ['bangs', 'base', 'mustache', 'beard']"
> >
<!-- eslint-disable max-len-->
<span <span
:key="type" :key="type"
:class="['hair_' + type + '_' + member.preferences.hair[type] + '_' + member.preferences.hair.color, specialMountClass]" :class="[hairClass(type), specialMountClass]"
></span> ></span>
<!-- eslint-enable max-len-->
</template> </template>
<span :class="[getGearClass('body'), specialMountClass]"></span> <span :class="[getGearClass('body'), specialMountClass]"></span>
<span :class="[getGearClass('eyewear'), specialMountClass]"></span> <span :class="[getGearClass('eyewear'), specialMountClass]"></span>
@@ -233,10 +231,20 @@ export default {
}, },
skinClass () { skinClass () {
if (!this.member) return ''; if (!this.member) return '';
if (this.overrideAvatarGear?.skin) {
return `skin_${this.overrideAvatarGear.skin}`;
}
const baseClass = `skin_${this.member.preferences.skin}`; const baseClass = `skin_${this.member.preferences.skin}`;
return `${baseClass}${this.member.preferences.sleep ? '_sleep' : ''}`; return `${baseClass}${this.member.preferences.sleep ? '_sleep' : ''}`;
}, },
shirtClass () {
if (!this.member) return '';
if (this.overrideAvatarGear?.shirt) {
return `${this.member.preferences.size}_shirt_${this.overrideAvatarGear.shirt}`;
}
return `${this.member.preferences.size}_shirt_${this.member.preferences.shirt}`;
},
costumeClass () { costumeClass () {
return this.member?.preferences.costume ? 'costume' : 'equipped'; return this.member?.preferences.costume ? 'costume' : 'equipped';
}, },
@@ -269,6 +277,17 @@ export default {
return result; return result;
}, },
hairClass (slot) {
if (this.overrideAvatarGear?.hair) {
if (this.overrideAvatarGear.hair[slot]) {
return `hair_${slot}_${this.overrideAvatarGear.hair[slot]}_${this.member.preferences.hair.color}`;
}
if (this.overrideAvatarGear.hair.color) {
return `hair_${slot}_${this.member.preferences.hair[slot]}_${this.overrideAvatarGear.hair.color}`;
}
}
return `hair_${slot}_${this.member.preferences.hair[slot]}_${this.member.preferences.hair.color}`;
},
hideGear (gearType) { hideGear (gearType) {
if (!this.member) return true; if (!this.member) return true;
if (gearType === 'weapon') { if (gearType === 'weapon') {

View File

@@ -631,7 +631,7 @@ const amountOfDropPotions = size(dropPotions);
const hideAmountSelectionForPurchaseTypes = [ const hideAmountSelectionForPurchaseTypes = [
'gear', 'backgrounds', 'mystery_set', 'card', 'gear', 'backgrounds', 'mystery_set', 'card',
'rebirth_orb', 'fortify', 'armoire', 'keys', 'rebirth_orb', 'fortify', 'armoire', 'keys',
'debuffPotion', 'pets', 'mounts', 'debuffPotion', 'pets', 'mounts', 'customization',
]; ];
export default { export default {
@@ -684,7 +684,8 @@ export default {
computed: { computed: {
...mapState({ user: 'user.data' }), ...mapState({ user: 'user.data' }),
showAvatar () { showAvatar () {
return ['backgrounds', 'gear', 'mystery_set'].includes(this.item.purchaseType); return ['backgrounds', 'gear', 'mystery_set', 'customization']
.includes(this.item.purchaseType);
}, },
preventHealthPotion () { preventHealthPotion () {
@@ -885,6 +886,27 @@ export default {
return gear; return gear;
} }
case 'customization': {
if (item.type === 'skin') {
return {
skin: item.key,
};
}
if (item.type === 'shirt') {
return {
shirt: item.key,
armor: 'armor_base_0',
};
}
if (['base', 'beard', 'color', 'mustache'].includes(item.type)) {
return {
hair: {
[item.type]: item.option,
},
head: 'head_base_0',
};
}
}
} }
return {}; return {};

View File

@@ -383,8 +383,11 @@ export default function getItemInfo (user, type, item, officialPinnedItems, lang
itemInfo = { itemInfo = {
key: item.key, key: item.key,
class: `hair hair_bangs_${user.preferences.hair.bangs}_${item.key}`, class: `hair hair_bangs_${user.preferences.hair.bangs}_${item.key}`,
value: item.price,
currency: 'gems', currency: 'gems',
option: item.key,
purchaseType: 'customization',
type: 'color',
value: item.price,
}; };
break; break;
} }
@@ -392,8 +395,11 @@ export default function getItemInfo (user, type, item, officialPinnedItems, lang
itemInfo = { itemInfo = {
key: `hair-base-${item.key}`, key: `hair-base-${item.key}`,
class: `hair hair_base_${item.key}_${user.preferences.hair.color}`, class: `hair hair_base_${item.key}_${user.preferences.hair.color}`,
value: item.price,
currency: 'gems', currency: 'gems',
option: item.key,
purchaseType: 'customization',
type: 'base',
value: item.price,
}; };
break; break;
} }
@@ -401,8 +407,11 @@ export default function getItemInfo (user, type, item, officialPinnedItems, lang
itemInfo = { itemInfo = {
key: `mustache-${item.key}`, key: `mustache-${item.key}`,
class: `facial-hair hair_mustache_${item.key}_${user.preferences.hair.color}`, class: `facial-hair hair_mustache_${item.key}_${user.preferences.hair.color}`,
value: item.price,
currency: 'gems', currency: 'gems',
option: item.key,
purchaseType: 'customization',
type: 'mustache',
value: item.price,
}; };
break; break;
} }
@@ -410,8 +419,11 @@ export default function getItemInfo (user, type, item, officialPinnedItems, lang
itemInfo = { itemInfo = {
key: `beard-${item.key}`, key: `beard-${item.key}`,
class: `facial-hair hair_beard_${item.key}_${user.preferences.hair.color}`, class: `facial-hair hair_beard_${item.key}_${user.preferences.hair.color}`,
value: item.price,
currency: 'gems', currency: 'gems',
option: item.key,
purchaseType: 'customization',
type: 'beard',
value: item.price,
}; };
break; break;
} }
@@ -419,8 +431,10 @@ export default function getItemInfo (user, type, item, officialPinnedItems, lang
itemInfo = { itemInfo = {
key: item.key, key: item.key,
class: `skin skin_${item.key}`, class: `skin skin_${item.key}`,
value: item.price,
currency: 'gems', currency: 'gems',
purchaseType: 'customization',
type: 'skin',
value: item.price,
}; };
break; break;
} }
@@ -428,8 +442,10 @@ export default function getItemInfo (user, type, item, officialPinnedItems, lang
itemInfo = { itemInfo = {
key: item.key, key: item.key,
class: `shirt ${user.preferences.size}_shirt_${item.key}`, class: `shirt ${user.preferences.size}_shirt_${item.key}`,
value: item.price,
currency: 'gems', currency: 'gems',
purchaseType: 'customization',
type: 'shirt',
value: item.price,
}; };
break; break;
} }