mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-06-25 17:54:37 +00:00
696e727a39
## Description: Adds a currency pack system to the store. Players can purchase packs of in-game currency (Plutonium and Caps) via Stripe checkout. What's new: * Pack schema (PackSchema) — new cosmetic type with currency (hard/soft), amount, and displayName * "Packs" tab in the Store — renders purchasable currency packs using existing CosmeticButton infrastructure * Stripe checkout flow — new createCurrencyPackCheckout API call and handlePackPurchase handler * Currency display in Account modal — shows Plutonium and Caps balances when logged in I* con components — <plutonium-icon> (animated green glow + rotate) and <cap-icon> with new SVG assets * Currency in UserMeResponse — player.currency.hard / player.currency.soft added to the API schema ## Please complete the following: - [x] I have added screenshots for all UI updates - [x] I process any text displayed to the user through translateText() and I've added it to the en.json file - [x] I have added relevant tests to the test directory - [x] I confirm I have thoroughly tested these changes and take full responsibility for any bugs introduced ## Please put your Discord username so you can be contacted if a bug or regression is found: evan
30 lines
699 B
TypeScript
30 lines
699 B
TypeScript
import { html, LitElement } from "lit";
|
|
import { customElement, property } from "lit/decorators.js";
|
|
import { assetUrl } from "../../core/AssetUrls";
|
|
|
|
@customElement("cap-icon")
|
|
export class CapIcon extends LitElement {
|
|
@property({ type: Number })
|
|
size: number = 48;
|
|
|
|
createRenderRoot() {
|
|
return this;
|
|
}
|
|
|
|
render() {
|
|
return html`
|
|
<div
|
|
class="inline-flex items-center justify-center"
|
|
style="width:${this.size}px; height:${this.size}px;"
|
|
>
|
|
<img
|
|
src=${assetUrl("images/BottleCapIcon.svg")}
|
|
alt="Caps"
|
|
style="width:${this.size}px; height:${this.size}px;"
|
|
draggable="false"
|
|
/>
|
|
</div>
|
|
`;
|
|
}
|
|
}
|