# 西行云途 · 双积分商城与兑换码（纯静态原型）

赛博水墨风格的「积分商城 + 兑换码」单页网页原型，零外部依赖，单文件即可运行。
视觉与交互规范继承自 `cyber-hiking/index.html`，保持 HUD / 面板 / 霓虹 / 网格一致。

## 功能清单

### 1. 双积分商城（Tab 切换）
- **仙途勋值商城**：战斗 / PK 道具（7 个商品，来自 `shop_exchange.json`）。
- **梵言书卷值商城**：灵宠皮肤 / 表情包（7 个商品）。
- 每个商品含：纯 SVG 图标 + 价格 + 库存。
- 点击「购买」：扣除对应积分、库存 -1、卡片标记「已购」并弹 toast；积分不足或售罄时禁用。

### 2. 兑换码核销
- 输入框输入兑换码，支持 `Enter` 提交。
- 格式校验：前缀 `XIANTU_` / `FANYAN_` / `YOULI_` + 字母数字后缀，否则提示「格式不正确」。
- 校验通过模拟核销：按前缀发放奖励（仙途勋值 +500 / 梵言书卷值 +300 / 游礼双积分各 +100 并赠 9 折券）。
- 已核销码进入黑名单（localStorage），重复输入提示「已被使用，请勿重复兑换」。

### 3. 抵扣券折扣
- 展示 3 张抵扣券：仙途勋值 8 折券、梵言书卷值满减券、全商城 9 折券。
- 点击选用（再次点击取消），每笔订单仅可用一张、不可叠加（与 JSON `stackRule` 一致）。
- 选用后在商城卡片实时显示折后价（划线原价 + 折扣价），购买时按折后价扣积分。

### 4. 礼包库存与有效期倒计时
- 3 个礼包：新手启程礼包（免费领取）、赛博徒步进阶礼包、灵宠外观豪华礼包。
- 显示库存与有效期倒计时（前端 1 秒定时器）。
- 永久有效礼包显示「永久有效」；售卖截止 / 领取过期后卡片置灰、按钮禁用。
- 受购买上限限制（JSON `purchaseLimit`）。

### 5. 顶部 HUD
- 双积分余额（仙途勋值 / 梵言书卷值）、已购商品数。
- 提供「重置存档」按钮（清空 localStorage 演示数据）。

## 本地预览

无需构建，直接用浏览器打开即可：

```bash
# 方式一：直接双击 index.html
# 方式二：起一个静态服务器（推荐，避免个别浏览器本地文件限制）
cd /workspace/xixing-yuntu/shop-exchange
python3 -m http.server 8080
# 浏览器访问 http://localhost:8080/index.html
```

数据状态（积分、库存、已核销、礼包领取、选用券）均存于 `localStorage`（key: `xy_shop_v1`），刷新不丢失；点 HUD 的「重置存档」可恢复初始状态（初始各 2000 积分便于演示购买）。

## 版权与脱敏说明

- 全站不出现任何原版西游 IP 名称、角色、剧情或实景素材。
- 积分统一使用原创命名 **仙途勋值 / 梵言书卷值**，商城与道具为原创赛博国风设定。
- 商品图标全部为**纯 SVG 手绘布衣风图形**（宝箱、药水、符箓、灵宠、表情包等），无任何写实图片或外部资源。
- 兑换码、礼包、抵扣券均为前端模拟逻辑，无真实后端对接，仅作交互演示。
