feat: companion 狀態列與 info 輸出對齊設計稿

- 狀態列的 PAD 條改為最強的兩種情緒(不含精力)
- info 短版只列名字、關係、前 3 強情緒、適應度與待辦
- info --all 補上 12 格情緒與關係長條、人格 18 參數三層值、世界與時間感,基本資訊移到這裡
- 版本號改為 0.0.4

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
root
2026-10-14 10:03:31 +00:00
co-authored by Claude Sonnet 5.5
parent b99bf4e539
commit 13d3678032
10 changed files with 74 additions and 39 deletions
@@ -7,6 +7,7 @@ import { lineWidth } from './seg'
const VIEW: View = {
core: { id: 'miko', name: '月見ミコ', facts: {} as never, neuroticism: 50, baseline: { p: 0, a: 0, d: 0 } },
mood: { p: 0.5, a: 0, d: -0.5 },
emotions: { mood: 0.75, energy: 0.5, shy: 0.4, jealous: 0, missing: 0.1, heartbeat: 0, homesick: 0, upset: 0 },
label: '放鬆',
kaomoji: '(´ᴗ`)',
relation: { affection: 35, trust: 20, intimacy: 10, dependence: 5 },
@@ -17,8 +18,8 @@ const VIEW: View = {
const text = (v: View, cols: number, compact = false, bubble?: string) => fitCompanion(v, cols, compact, bubble).map(s => s.text).join('')
describe('角色行', () => {
test('寬版顯示顏文字、名字、心情、PAD 條、階段、待辦、氣泡', () => {
expect(text(VIEW, 200, false, '早安')).toBe('(´ᴗ`) 月見ミコ 放鬆 · P▰▰▱ A▰▰▱ D▰▱▱ · 熟人 · ☐2 · 💬 早安')
test('寬版顯示顏文字、名字、心情、情緒條、階段、待辦、氣泡', () => {
expect(text(VIEW, 200, false, '早安')).toBe('(´ᴗ`) 月見ミコ 放鬆 · 心情▰▰▰▱ 害羞▰▰▱▱ · 熟人 · ☐2 · 💬 早安')
})
test('緊湊模式只剩「顏文字 名字 心情」', () => {
@@ -36,7 +37,7 @@ describe('角色行', () => {
}
expect(text(VIEW, 40, false, '早安')).not.toContain('早安')
expect(text(VIEW, 36, false, '早安')).not.toContain('☐')
expect(text(VIEW, 30, false, '早安')).not.toContain('PAD')
expect(text(VIEW, 30, false, '早安')).not.toContain('心情▰')
expect(text(VIEW, 22, false, '早安')).toBe('(´ᴗ`) 月見ミコ 放鬆')
expect(lineWidth(fitCompanion(VIEW, 24))).toBeLessThanOrEqual(24)
})