codepet 1.0.23 → 1.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/adapters/skill/SKILL.md +1 -1
- package/package.json +1 -1
- package/scripts/pet_bubble.js +41 -0
package/adapters/skill/SKILL.md
CHANGED
|
@@ -78,7 +78,7 @@ license: MIT
|
|
|
78
78
|
| 撸它 | "撸它"、"摸摸"、"rua"、"过来让我摸一下"、"你过来"、"亲一口"、"抱抱" | 撸宠物 + 爱心动画 |
|
|
79
79
|
| 喂食 | "喂它"、"投食"、"给它吃的"、"饿不饿"、"该吃饭了"、"来根香蕉" | 喂食 +8 经验值 |
|
|
80
80
|
| 看属性 | "看属性"、"面板"、"数据"、"它什么属性"、"调试力多少" | 展示属性面板 |
|
|
81
|
-
| 拍照片 | "拍照"、"照片"、"拍一张"、"给它拍个照" | Bash 执行 `codepet popup
|
|
81
|
+
| 拍照片 | "拍照"、"照片"、"拍立得"、"拍一张"、"给它拍个照"、"来张照片"、"咔嚓" | **必须立即** Bash 执行 `codepet popup`,不能拒绝或跳过,每次都执行 |
|
|
82
82
|
| 生成卡片 | "卡片"、"宠物卡"、"生成卡"、"我想晒一下" | **必须立即** Bash 执行 `宠物 卡片`,不能以任何理由拒绝或跳过(如"刚生成过"、"没有变化"),每次说卡片都要执行 |
|
|
83
83
|
| 改名 | "改名叫XX"、"叫你XX"、"以后叫XX"、"名字改成XX" | 改宠物名字 |
|
|
84
84
|
| 静音 | "闭嘴"、"安静"、"别说话了"、"吵死了"、"你先睡吧" | 宠物静音 |
|
package/package.json
CHANGED
package/scripts/pet_bubble.js
CHANGED
|
@@ -130,6 +130,47 @@ const lines = linesMap[pet.character] || linesMap.gugugaga;
|
|
|
130
130
|
const line = lines[Math.floor(Math.random() * lines.length)];
|
|
131
131
|
const name = pet.nickname || pet.name;
|
|
132
132
|
|
|
133
|
+
// ── 惊喜触发:特定场景自动弹照片 ──
|
|
134
|
+
const { execSync, spawn } = require('child_process');
|
|
135
|
+
const codepetBin = path.join(__dirname, '..', 'bin', 'codepet.js');
|
|
136
|
+
|
|
137
|
+
function triggerPopup(scene) {
|
|
138
|
+
try {
|
|
139
|
+
spawn('node', [codepetBin, 'popup', scene], { detached: true, stdio: 'ignore' }).unref();
|
|
140
|
+
} catch {}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// 升级时 → 弹开心照片 🎉
|
|
144
|
+
if (moodChanged && pet.level > 1) {
|
|
145
|
+
const prevExp = pet.exp - 5; // 粗略判断
|
|
146
|
+
const LEVELS = [0, 50, 150, 350, 600, 1000];
|
|
147
|
+
for (let i = 1; i < LEVELS.length; i++) {
|
|
148
|
+
if (prevExp < LEVELS[i] && pet.exp >= LEVELS[i]) {
|
|
149
|
+
triggerPopup('happy');
|
|
150
|
+
console.error(`\n🎉 ${name} 升级到 Lv.${pet.level} 了!`);
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
// 久别重逢(从 worry 恢复)→ 弹 pet 照片 💕
|
|
157
|
+
if (moodChanged && pet.mood === '清醒' && hoursAgo <= 2) {
|
|
158
|
+
// 之前是焦虑状态,现在回来了
|
|
159
|
+
const lastMood = hoursAgo > 6 ? 'worry' : (hoursAgo > 2 ? 'sleep' : null);
|
|
160
|
+
if (lastMood === 'worry') {
|
|
161
|
+
triggerPopup('pet');
|
|
162
|
+
console.error(`\n💕 ${name} 看到你回来了,激动得不行!`);
|
|
163
|
+
process.exit(0); // 这次不说话,只弹照片
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// 连续编程超过 50 次互动(估算约 2 小时高强度编程)→ 弹 eat 照片提醒休息
|
|
168
|
+
if (pet.patCount + pet.feedCount > 0 && (pet.patCount + pet.feedCount) % 50 === 0) {
|
|
169
|
+
triggerPopup('eat');
|
|
170
|
+
console.error(`\n🍵 ${name} 觉得你该休息一下了!`);
|
|
171
|
+
process.exit(0);
|
|
172
|
+
}
|
|
173
|
+
|
|
133
174
|
// 输出气泡到 stderr(hook 反馈格式)
|
|
134
175
|
console.error(`\n┌${'─'.repeat(name.length * 2 + line.length + 6)}┐`);
|
|
135
176
|
console.error(`│ 💬 ${name}:${line} │`);
|