From 4d4d0b1cd2781f9efdd50637c3f5813bee59a07a Mon Sep 17 00:00:00 2001 From: Devin Zuczek Date: Fri, 25 Sep 2026 16:41:11 -0400 Subject: [PATCH] [econ] coach needs more money --- apps/econ/src/catalog-load.ts | 2 +- apps/econ/src/test/integration/api.test.ts | 2 +- apps/econ/static/storefronts/sf3-2025.json | 52 +++++++++++----------- packages/tools/src/cmd/storefront.cmd.ts | 2 +- 4 files changed, 29 insertions(+), 29 deletions(-) diff --git a/apps/econ/src/catalog-load.ts b/apps/econ/src/catalog-load.ts index 7623806..519ac85 100644 --- a/apps/econ/src/catalog-load.ts +++ b/apps/econ/src/catalog-load.ts @@ -186,7 +186,7 @@ export const UNLISTED_SKIN_RARITY = 50 * What a GOLD skin costs — any skin whose name carries `(Gold)`, thirteen of them, all from the * capture. A prestige price, and the same for a subscriber: no discount, no sale. */ -export const GOLD_SKIN_PRICE = 100_000 +export const GOLD_SKIN_PRICE = 1_000_000 /** Whether a listing is a gold skin — a skin whose name says `(Gold)`. */ export const isGoldSkin = (listing: StoreListing): boolean => diff --git a/apps/econ/src/test/integration/api.test.ts b/apps/econ/src/test/integration/api.test.ts index 89c4b9d..cafa190 100644 --- a/apps/econ/src/test/integration/api.test.ts +++ b/apps/econ/src/test/integration/api.test.ts @@ -2846,7 +2846,7 @@ describe('econ endpoints', () => { expect(skinsJson.every((sk) => soldGuids.includes(sk.ModificationGuid))).toBe(true) expect(soldSkins.every((i) => i.GiftDrop.ThumbnailImageName === '')).toBe(true) expect(soldSkins.length).toBeGreaterThan(unlisted.length) - // A "(Gold)" skin — thirteen, all from the capture — is a prestige item: 100,000 tokens, + // A "(Gold)" skin — thirteen, all from the capture — is a prestige item: 1,000,000 tokens, // the same for a subscriber, no sale. A "(Gold)" AVATAR item is priced as the dump has it. const goldSkins = soldSkins.filter((i) => i.GiftDrop.FriendlyName.includes('(Gold)')) expect(goldSkins.length).toBeGreaterThan(10) diff --git a/apps/econ/static/storefronts/sf3-2025.json b/apps/econ/static/storefronts/sf3-2025.json index 4839cb2..89d7f3a 100644 --- a/apps/econ/static/storefronts/sf3-2025.json +++ b/apps/econ/static/storefronts/sf3-2025.json @@ -193541,14 +193541,14 @@ "Prices": [ { "CurrencyType": 2, - "Price": 100000, + "Price": 1000000, "StorefrontSaleData": null } ], "SubscriberPrices": [ { "CurrencyType": 2, - "Price": 100000, + "Price": 1000000, "StorefrontSaleData": null } ], @@ -193594,14 +193594,14 @@ "Prices": [ { "CurrencyType": 2, - "Price": 100000, + "Price": 1000000, "StorefrontSaleData": null } ], "SubscriberPrices": [ { "CurrencyType": 2, - "Price": 100000, + "Price": 1000000, "StorefrontSaleData": null } ], @@ -193647,14 +193647,14 @@ "Prices": [ { "CurrencyType": 2, - "Price": 100000, + "Price": 1000000, "StorefrontSaleData": null } ], "SubscriberPrices": [ { "CurrencyType": 2, - "Price": 100000, + "Price": 1000000, "StorefrontSaleData": null } ], @@ -193912,14 +193912,14 @@ "Prices": [ { "CurrencyType": 2, - "Price": 100000, + "Price": 1000000, "StorefrontSaleData": null } ], "SubscriberPrices": [ { "CurrencyType": 2, - "Price": 100000, + "Price": 1000000, "StorefrontSaleData": null } ], @@ -195078,14 +195078,14 @@ "Prices": [ { "CurrencyType": 2, - "Price": 100000, + "Price": 1000000, "StorefrontSaleData": null } ], "SubscriberPrices": [ { "CurrencyType": 2, - "Price": 100000, + "Price": 1000000, "StorefrontSaleData": null } ], @@ -198205,14 +198205,14 @@ "Prices": [ { "CurrencyType": 2, - "Price": 100000, + "Price": 1000000, "StorefrontSaleData": null } ], "SubscriberPrices": [ { "CurrencyType": 2, - "Price": 100000, + "Price": 1000000, "StorefrontSaleData": null } ], @@ -198629,14 +198629,14 @@ "Prices": [ { "CurrencyType": 2, - "Price": 100000, + "Price": 1000000, "StorefrontSaleData": null } ], "SubscriberPrices": [ { "CurrencyType": 2, - "Price": 100000, + "Price": 1000000, "StorefrontSaleData": null } ], @@ -199583,14 +199583,14 @@ "Prices": [ { "CurrencyType": 2, - "Price": 100000, + "Price": 1000000, "StorefrontSaleData": null } ], "SubscriberPrices": [ { "CurrencyType": 2, - "Price": 100000, + "Price": 1000000, "StorefrontSaleData": null } ], @@ -200272,14 +200272,14 @@ "Prices": [ { "CurrencyType": 2, - "Price": 100000, + "Price": 1000000, "StorefrontSaleData": null } ], "SubscriberPrices": [ { "CurrencyType": 2, - "Price": 100000, + "Price": 1000000, "StorefrontSaleData": null } ], @@ -200855,14 +200855,14 @@ "Prices": [ { "CurrencyType": 2, - "Price": 100000, + "Price": 1000000, "StorefrontSaleData": null } ], "SubscriberPrices": [ { "CurrencyType": 2, - "Price": 100000, + "Price": 1000000, "StorefrontSaleData": null } ], @@ -201650,14 +201650,14 @@ "Prices": [ { "CurrencyType": 2, - "Price": 100000, + "Price": 1000000, "StorefrontSaleData": null } ], "SubscriberPrices": [ { "CurrencyType": 2, - "Price": 100000, + "Price": 1000000, "StorefrontSaleData": null } ], @@ -201756,14 +201756,14 @@ "Prices": [ { "CurrencyType": 2, - "Price": 100000, + "Price": 1000000, "StorefrontSaleData": null } ], "SubscriberPrices": [ { "CurrencyType": 2, - "Price": 100000, + "Price": 1000000, "StorefrontSaleData": null } ], @@ -202074,14 +202074,14 @@ "Prices": [ { "CurrencyType": 2, - "Price": 100000, + "Price": 1000000, "StorefrontSaleData": null } ], "SubscriberPrices": [ { "CurrencyType": 2, - "Price": 100000, + "Price": 1000000, "StorefrontSaleData": null } ], diff --git a/packages/tools/src/cmd/storefront.cmd.ts b/packages/tools/src/cmd/storefront.cmd.ts index 1b260cf..064ef4e 100644 --- a/packages/tools/src/cmd/storefront.cmd.ts +++ b/packages/tools/src/cmd/storefront.cmd.ts @@ -57,7 +57,7 @@ import type { StoreListing } from '../../../../apps/econ/src/catalog-load' * thumbnails every skin listing — the game's own 99 and the appended ones alike — and every * consumable listing has its `ThumbnailImageName` set to `""`. The dump names a * PNG per item that this server does not have. - * gold a skin whose name carries `(Gold)` sells at `GOLD_SKIN_PRICE`, 100,000 tokens, + * gold a skin whose name carries `(Gold)` sells at `GOLD_SKIN_PRICE`, 1,000,000 tokens, * subscriber price the same: no discount, no sale. * context a drop whose `Context` is `NO_CONTEXT` (-1) gets 0. The dump carries -1 on * exactly 46 listings — the 22 permanent hair dyes and the 24 dice skins, the