---
name: theme_variant.aiconfig
description: 路径消除玩法的主题变体配置（ThemeVariantConfig）。定义一个完整的投放变体：包含关卡数据包引用、主题 ID、关卡模式、颜色覆盖等。每个 Remix 对应一个主题变体目录。
triggers: 需要创建新的投放变体配置、定义主题颜色或关卡模式时触发。
---

# 主题变体配置（Theme Variant Config）

## 说明

每个主题变体是 `src/theme/<变体名>/` 下的一个目录，包含：

- `index.ts`：导出 `ThemeVariantConfig` 实例
- 关卡数据文件（`levels.json` 或多个 `levelN.json`）

`ThemeVariantConfig` 字段：

| 字段 | 说明 |
|-----|-----|
| `levels` | `RawLevelJson[]` 关卡数据数组 |
| `name` | 变体显示名称 |
| `themeId` | 使用的视觉主题 ID（`black` / `white` 等）|
| `levelMode` | 关卡模式（0=闯关 / 1=简单 / 2=复杂 / 3=炸弹）|
| `segmentsMode?` | 快速胜利模式（消除 N 条即胜利）|
| `autoHint?` | 自动提示（默认 true）|
| `canvasBgColor?` | 画布背景色覆盖（十六进制）|
| `uiBarBgColor?` | UI 条背景色覆盖 |

## Recipe

```json
{
  "kind": "theme-config",
  "params": {
    "themeId": "black",
    "levelMode": 1,
    "canvasBgColor": "0x1a1a2e"
  }
}
```

## Result

`src/theme/<变体名>/index.ts`（TypeScript 模块，默认导出 `ThemeVariantConfig`）

## Binding

被 `theme_switcher_build.aicomponent` 的 `src/theme/index.ts` 通过构建时替换引用。

## Skill Definition

```yaml
tools:
  - write_file
inputs:
  - schema: ThemeVariantConfig from arrow_path_data_format.aicomponent
  - levelData: level_data_pack.aiconfig
outputs:
  - themeVariant: src/theme/<variant>/index.ts TypeScript module
```

## 示例

```typescript
// src/theme/MyTheme/index.ts
import type { ThemeVariantConfig } from "../../game/levels/LevelTypes";
import levels from "./levels.json";

export default {
  levels,
  name: "MyTheme",
  themeId: "black",
  levelMode: 1,
  autoHint: true,
  shouldDrawEliminationTrail: true,
  canvasBgColor: 0x1a1a2e,
} as ThemeVariantConfig;
```
