Redesign avatars as a gods/legends pantheon (custom SVG medallions)
Replaced the childish animal emoji avatars with custom inline-SVG "deity medallions" (gradient disc + gold ring + heraldic emblem) — Athena, Zeus, Poseidon, Horus, Odin, Thor, Cyrus, Simorgh, Ishtar, Nike, etc. IDs unchanged so owned avatars keep working; Avatar renders the art (emoji fallback for legacy ids). Shop now shows the art + the god name (was generic "Avatar"). Files: components/online/avatarArt.tsx (new art + pantheon map), Avatar.tsx (render art), ShopScreen Preview (avatar → <Avatar/>), mock-service avatar shop names from AVATAR_ART. Verified: tsc + next build clean; web rebuilt on :1500. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -24,6 +24,7 @@ import {
|
||||
OnlineService,
|
||||
Unsubscribe,
|
||||
} from "./service";
|
||||
import { AVATAR_ART } from "@/components/online/avatarArt";
|
||||
import {
|
||||
AVATARS,
|
||||
AppNotification,
|
||||
@@ -1022,18 +1023,21 @@ export class MockOnlineService implements OnlineService {
|
||||
}
|
||||
|
||||
async getShopItems(): Promise<ShopItem[]> {
|
||||
const avatarItems: ShopItem[] = AVATARS.filter((a) => (a.price ?? 0) > 0).map((a) => ({
|
||||
id: a.id,
|
||||
kind: "avatar",
|
||||
nameFa: "آواتار",
|
||||
nameEn: "Avatar",
|
||||
price: a.price!,
|
||||
preview: a.emoji,
|
||||
descFa: "آواتار نمایه شما در بازی و جدول",
|
||||
descEn: "Your profile avatar in games & leaderboard",
|
||||
reqLevel: a.reqLevel,
|
||||
reqRating: a.reqRating,
|
||||
}));
|
||||
const avatarItems: ShopItem[] = AVATARS.filter((a) => (a.price ?? 0) > 0).map((a) => {
|
||||
const art = AVATAR_ART[a.id];
|
||||
return {
|
||||
id: a.id,
|
||||
kind: "avatar" as const,
|
||||
nameFa: art?.nameFa ?? "آواتار",
|
||||
nameEn: art?.nameEn ?? "Avatar",
|
||||
price: a.price!,
|
||||
preview: a.emoji,
|
||||
descFa: "آواتار افسانهای نمایه شما در بازی و جدول",
|
||||
descEn: "A legendary profile avatar shown in games & the leaderboard",
|
||||
reqLevel: a.reqLevel,
|
||||
reqRating: a.reqRating,
|
||||
};
|
||||
});
|
||||
const backItems: ShopItem[] = CARD_BACKS.filter((c) => c.price > 0).map((c) => ({
|
||||
id: c.id,
|
||||
kind: "cardback",
|
||||
|
||||
Reference in New Issue
Block a user