mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 14:47:53 +01:00
WIP(shop): show customs in buy modal
This commit is contained in:
@@ -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') {
|
||||||
|
|||||||
@@ -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 {};
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user