灵伴桌面宠物 — 提醒优化与形象换装系统 v2.3

一、提醒功能模块优化

现有问题分析

# 问题 严重度
1 无法停止运行中的任务 — PowerShell 进程启动后无法从 UI 中断 🔴 高
2 无任务执行超时控制 — 脚本卡死会一直占用 running 状态 🔴 高
3 运行状态不透明 — UI 上看不到实时运行状态(stdout/stderr 流式更新) 🟡 中
4 手动运行后状态不刷新 — runTask 结束后 UI 不同步 lastStatus 🟡 中
5 无执行确认对话框 — 定时关机等危险操作无二次确认 🟢 低
6 任务列表筛选缺失 — 全部/已启用/已禁用 筛选 🟢 低

优化方案

  1. 停止运行任务: task-scheduler.js 新增 stop(taskId) 方法 → 调用 child.kill('SIGTERM') → UI 新增”停止”按钮
  2. 超时控制: 默认 5 分钟超时,超过自动 kill,config-store 新增 task.timeout 字段
  3. 实时状态: scheduler 通过 IPC 推送 stdout/stderr 增量,UI 实时展示
  4. 执行确认: 任务脚本包含 shutdown/format/del 等危险关键词时弹确认框
  5. 任务筛选: 全部/已启用/已禁用 tabs

二、宠物形象换装系统

设计方案

C:\Users\Administrator\Downloads\已扣出\
├── 星期一\           (dayOfWeek 1)
│   ├── 01_连衣裙\    (outfit 1)
│   │   ├── 1p_上午.png   (prefix "1p" = 上午 06:00-12:00)
│   │   ├── 2p_下午.png   (prefix "2p" = 下午 12:00-18:00)
│   │   ├── 3p_晚上.png   (prefix "3p" = 晚上 18:00-06:00)
│   │   └── idle.gif      (静止时的动画)
│   ├── 02_卫衣\
│   └── 03_T恤\
├── 星期二\
├── ...
└── 星期天\

时间段划分

时段 时间范围 文件前缀 穿衣程度
🌅 上午 06:00 - 12:00 1p_ 全套(穿最多)
☀️ 下午 12:00 - 18:00 2p_ 半套(脱掉外套)
🌙 晚上 18:00 - 06:00 3p_ 少量(居家休闲)

图片选择逻辑

  1. 周几 → 选文件夹: 根据当前星期几选择对应文件夹
  2. 随机选一套衣服: 在当天文件夹中随机选一个子文件夹
  3. 时段 → 选图片: 在衣服文件夹中根据时段前缀选对应图片
  4. GIF/APNG 优先: 如果有 idle.gif/apng,作为静止动画;否则用当前时段静态图
  5. 每隔 N 小时重新随机: 避免同一套衣服穿一整天

新增配置字段

{
  "settings": {
    "wardrobePath": "C:\\Users\\Administrator\\Downloads\\已扣出",
    "wardrobeEnabled": false,
    "wardrobeInterval": 3  // 每N小时换一次衣服
  }
}

实现要点

  • config-store 新增 wardrobePath/wardrobeEnabled/wardrobeInterval
  • main.js 新增 resolveWardrobeImage() 函数,根据 星期几+时段+随机衣服 返回图片路径
  • petImageUrl() 优先使用 wardrobe 系统
  • 控制中心新增”形象换装”设置面板
  • 定时器每 N 小时重新随机衣服并刷新宠物

三、删除游戏功能

  • manager.html 删除游戏页面 section
  • manager.js 删除所有游戏相关代码(~80行)
  • manager.css 删除游戏样式
  • 导航栏删除”游戏”入口

四、宠物缩放 250%

  • main.js setPetScale 上限从 1.75 改为 2.5
  • pet.js 缩放上限同步
  • manager.html range 滑块 max 改为 250