Переглянути джерело

feat: 桌面宠物设计文档 v1.1 - 支持用户自定义状态

Sisyphus 2 днів тому
батько
коміт
115cd73c2b
1 змінених файлів з 20 додано та 4 видалено
  1. 20 4
      docs/superpowers/specs/2026-10-10-desktop-pet-design.md

+ 20 - 4
docs/superpowers/specs/2026-10-10-desktop-pet-design.md

@@ -141,7 +141,12 @@ WebView2 JS 接收 → 触发对应动画帧 → 播放音效(可选)
     "waiting_for_interaction": "hand_gesture",
     "success_animation": "celebrate",
     "sleeping": "breath_loop",
-    "mini_game": "puzzle_active"
+    "mini_game": "puzzle_active",
+
+    // 【新增】用户自定义状态映射
+    // 键为用户自定义状态名,值为对应的 CSS 动画类名或帧序列
+    "custom_state_1": "user_animation_1",
+    "custom_state_2": "user_animation_2"
   },
 
   "sounds": {
@@ -161,11 +166,22 @@ WebView2 JS 接收 → 触发对应动画帧 → 播放音效(可选)
 ### 用户自定义流程
 
 1. 用户放置 PNG 图片到 `~/.xaf-pet/images/<pet-name>/`
-2. 同目录放置 `pet-config.json`(使用上述 Schema)
+2. 同目录放置 `pet-config.json`(使用上述 Schema,可在 `actions` 中添加 `custom_state_N` 键值对)
 3. 应用启动时扫描所有配置文件夹
-4. 用户在"设置"界面选择宠物形象
+4. 用户在"设置 → 自定义状态"界面管理自定义状态映射
+5. C# 侧通过 `window.cfcPetAPI.setCustomState("custom_state_1", data)` 发送自定义状态
+
+**要求**:
+- 每只宠物需要一张基准 PNG(透明背景)+ 可选的动作帧图
+- CSS 动画驱动,无需多帧精灵图
+- 支持最多 10 种用户自定义状态(通过配置文件 key 如 `custom_state_1`~`custom_state_10` 定义)
 
-**要求**:每只宠物需要一张基准 PNG(透明背景)+ 一张动作帧图(可选)。CSS 动画驱动,无需多帧精灵图。
+### C# ↔ JS Bridge 新增接口
+
+```csharp
+// C# → JS:设置自定义状态
+public void SetCustomState(string stateName, object stateData);
+```
 
 ---