Claude Code 0331 系统报告

第25章 · Buddy虚拟宠物系统

第25章 · Buddy虚拟宠物系统

25.1 Bones(骨架):确定性生成

buddy/目录实现了一个完整的虚拟宠物系统。最独特的设计是"确定性哈希生成"——每个用户的宠物不是随机生成的,而是从用户ID确定性派生的。这意味着:

  • 同一用户永远拥有相同的宠物
  • 宠物是用户身份的"视觉指纹"
  • 没有保存/加载机制——宠物从用户ID实时计算

18种物种和5级稀有度构成了宠物的"骨架"(Bones)。物种和稀有度的分配由用户ID的哈希值决定,稀有度越高的物种出现概率越低。

稀有度颜色通过RARITY_COLORS枚举定义,从常见到传说:

  • Common(常见)
  • Uncommon(不常见)
  • Rare(稀有)
  • Epic(史诗)
  • Legendary(传说)

25.2 Soul(灵魂):学习型个性

如果说Bones是宠物的外表,Soul则是宠物的"个性"。与确定性的Bones不同,Soul是学习型的——它会根据用户的使用模式逐渐发展出独特的个性属性。

25.3 CompanionSprite:动画系统

CompanionSprite组件实现了宠物的终端动画:

const TICK_MS = 500              // 动画帧间隔
const BUBBLE_SHOW = 20           // 对话气泡显示时长(~10秒)
const FADE_WINDOW = 6            // 气泡淡出窗口(~3秒)
const PET_BURST_MS = 2500        // 抚摸后爱心浮动时长

空闲动画序列

const IDLE_SEQUENCE = [0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 2, 0, 0, 0]
// 0 = 休息, 1-2 = 小动作, -1 = 第0帧眨眼

抚摸效果/buddy pet命令触发):

   ♥    ♥
  ♥  ♥   ♥
 ♥   ♥  ♥
♥  ♥      ♥
·    ·   ·

5帧心形浮动动画,持续约2.5秒。

25.4 设计哲学

在一个严肃的CLI开发工具中放入虚拟宠物系统,这是一个大胆的设计决策。但从产品心理学角度看,这有多重意义:

  • 情感连接:用户与工具建立情感纽带,增加留存
  • 身份认同:确定性生成的宠物成为用户的"数字分身"
  • 压力缓解:在高压的编码工作中提供轻松的互动
  • 社交货币:稀有宠物成为用户之间的谈资

On this page