diff --git a/api/src/cosmetics.json b/api/src/cosmetics.json index 86857185..e46352a8 100644 --- a/api/src/cosmetics.json +++ b/api/src/cosmetics.json @@ -3035,7 +3035,7 @@ "displayName": "Ultimate", "id": 306, "buyable": true, - "price": 0, + "price": 1000000000, "swordFileName": "ultimateSword.png", "bodyFileName": "ultimatePlayer.png", "description": "Ultimate version of the Default skin" diff --git a/client/src/game/cosmetics.json b/client/src/game/cosmetics.json index 86857185..e46352a8 100644 --- a/client/src/game/cosmetics.json +++ b/client/src/game/cosmetics.json @@ -3035,7 +3035,7 @@ "displayName": "Ultimate", "id": 306, "buyable": true, - "price": 0, + "price": 1000000000, "swordFileName": "ultimateSword.png", "bodyFileName": "ultimatePlayer.png", "description": "Ultimate version of the Default skin" diff --git a/client/src/ui/modals/ShopModal.scss b/client/src/ui/modals/ShopModal.scss index 81773755..3d865272 100644 --- a/client/src/ui/modals/ShopModal.scss +++ b/client/src/ui/modals/ShopModal.scss @@ -244,4 +244,8 @@ h1 { .badges button[data-selected-badge="sale"]:not(.active) { background-color: #ffff00; +} + +.badges button[data-selected-badge="ultimate"]:not(.active) { + background-color: #ff00ff; } \ No newline at end of file diff --git a/client/src/ui/modals/ShopModal.tsx b/client/src/ui/modals/ShopModal.tsx index a87b7f22..5e4ac406 100644 --- a/client/src/ui/modals/ShopModal.tsx +++ b/client/src/ui/modals/ShopModal.tsx @@ -58,7 +58,7 @@ const ShopModal: React.FC = ({ account }) => { if (skinStatus[id]) return; const skinAction = account.skins.equipped === id ? null : - account.skins.owned.includes(id) ? 'Equipping...' : 'Buying...'; + account.skins.owned.includes(id) ? 'Equipping...' : 'Getting...'; if (skinAction) { setSkinStatus(prev => ({ ...prev, [id]: skinAction })); @@ -148,9 +148,13 @@ const ShopModal: React.FC = ({ account }) => { +{account?.isLoggedIn && ( + + )} {account?.isLoggedIn && ( )} + { Object.values(skins).filter((skinData: any) => skinData.og && account?.skins.owned.includes(skinData.id)).length > 0 && ( <> @@ -171,6 +175,9 @@ const ShopModal: React.FC = ({ account }) => { {selectedBadge === 'own' && (

Skins you own can still be equipped from other menus, but using this menu will make it much easier to find them.

)} + {selectedBadge === 'ultimate' && ( +

Ultimate skins are obtained by earning ultimacy instead of spending gems.

(UNLOCKING ULTIMATE SKINS DOES NOT TAKE AWAY ANY ULTIMACY)

+ )}
{Object.values(skins).filter((skinData: any) => { @@ -179,6 +186,7 @@ const ShopModal: React.FC = ({ account }) => { if (selectedBadge === 'new' && skin.og) return false; if (selectedBadge === 'new' && skin.ultimate) return false; if (selectedBadge === 'norm' && skin.ultimate) return false; + if (selectedBadge === 'ultimate' && !skin.ultimate) return false; if (selectedBadge === 'new' && skin.eventoffsale) return false; if (selectedBadge === 'norm' && skin.freebie) return false; if (selectedBadge === 'norm' && skin.eventoffsale) return false; @@ -217,21 +225,31 @@ const ShopModal: React.FC = ({ account }) => {

{Object.keys(skinCounts ?? {}).length > 0 ? buyFormats(skinCounts[skin.id] ?? 0) : '...'} buys

{skin.description}

- { (skin?.price ?? 0) > 0 ? ( - <> - {skin.price} Gems - ) : ( - <> -

{skin.buyable ? 'Free' : ''}

- - )} + { + (skin?.price ?? 0) > 0 ? ( + <> + {skin?.price} + {skin?.ultimate + ? Ultimacy + : Gems + } + + ) : ( + <> +

+ {skin.buyable ? 'Free' : ''} +

+ + ) +}

{account?.isLoggedIn && (skin.buyable || account.skins.owned.includes(skin.id)) && ( - - )} + +)}
) } diff --git a/cosmetics.json b/cosmetics.json index 86857185..e46352a8 100644 --- a/cosmetics.json +++ b/cosmetics.json @@ -3035,7 +3035,7 @@ "displayName": "Ultimate", "id": 306, "buyable": true, - "price": 0, + "price": 1000000000, "swordFileName": "ultimateSword.png", "bodyFileName": "ultimatePlayer.png", "description": "Ultimate version of the Default skin" diff --git a/server/src/cosmetics.json b/server/src/cosmetics.json index 86857185..e46352a8 100644 --- a/server/src/cosmetics.json +++ b/server/src/cosmetics.json @@ -3035,7 +3035,7 @@ "displayName": "Ultimate", "id": 306, "buyable": true, - "price": 0, + "price": 1000000000, "swordFileName": "ultimateSword.png", "bodyFileName": "ultimatePlayer.png", "description": "Ultimate version of the Default skin"