// All hardcoded, verbatim game text/data (§4,§5,§6.5,§7,§8,§9). Change nothing without PRD.

export interface NpcDef { name: string; offset: number; participates: boolean; sprite: string; }
export const NPCS: Record<string, NpcDef> = {
  afu:   { name: '阿福',   offset: 0,   participates: true,  sprite: 'npc_afu' },
  yuan:  { name: '圆圆',   offset: 15,  participates: true,  sprite: 'npc_yuan' },   // +15 最晚崩
  dabao: { name: '大宝',   offset: 0,   participates: true,  sprite: 'npc_dabao' },
  mimi:  { name: '咪咪',   offset: -10, participates: true,  sprite: 'npc_mimi' },    // -10 最早崩
  fu:    { name: '芙医生', offset: 0,   participates: false, sprite: 'npc_fu' },      // 不参与侵蚀
  gui:   { name: '龟爷爷', offset: 0,   participates: false, sprite: 'npc_gui' },     // 不参与侵蚀
};

// §6.5 同音错字对照表（全 10 组，逐字）
export const TYPO: [string, string][] = [
  ['幸福', '辛福'], ['开心', '开欣'], ['美好', '美妤'], ['大家', '大伽'], ['微笑', '微效'],
  ['明天', '名天'], ['甜', '恬'], ['阳光', '央光'], ['朋友', '棚友'], ['永远', '泳远'],
];

// §5 阿福每日公告（逐字，措辞逐日滑移）
export const ANNOUNCE: Record<number, string> = {
  1: '早上好呀！今天的幸福任务贴在板上啦。祝你开心！',
  2: '早上好呀！新的一天，新的幸福。祝你开心！',
  3: '早上好！今天要把幸福装得满满的哦。要开心！',
  4: '早上好呀！今天的幸福任务贴在板上啦。祝你开心！', // 与 D1 逐字相同
  5: '早上好。今天是自由日，你可以自由地选择幸福。要开心哦。',
  6: '明天就是庆典了。大家都会到场，大家都会微笑。你必须开心。',
  7: '庆典开始了。来吧。',
};

// §7 任务清单
export interface TaskDef { day: number; title: string; reward: number; }
export const TASKS: Record<string, TaskDef> = {
  T1:  { day: 1, title: '从圆圆处取蜂蜜面包送给大宝、咪咪、龟爷爷', reward: 15 },
  T2:  { day: 1, title: '给广场花坛浇水 ×3', reward: 10 },
  T3:  { day: 1, title: '与任意三位村民问好', reward: 10 },
  T4:  { day: 2, title: '替大宝送信 ×3（收件人：圆圆、咪咪、芙医生）', reward: 15 },
  T5:  { day: 2, title: '帮咪咪清点货架', reward: 10 },
  T6:  { day: 3, title: '去花田采莓果 ×5', reward: 10 },
  T7:  { day: 3, title: '湖畔野餐', reward: 15 },
  T8:  { day: 4, title: '从圆圆处取蜂蜜面包送给大宝、咪咪、龟爷爷', reward: 15 },
  T9:  { day: 4, title: '给广场花坛浇水 ×3', reward: 10 },
  T10: { day: 4, title: '与任意三位村民问好', reward: 10 },
  T11: { day: 5, title: '帮圆圆揉面', reward: 10 },
  T12: { day: 5, title: '擦拭公告板', reward: 10 },
  T13: { day: 6, title: '在广场挂彩带 ×4', reward: 10 },
  T14: { day: 6, title: '保持微笑 60 秒', reward: 15 },
  T15: { day: 7, title: '参加第 413 届丰收庆典', reward: 0 },
};
export const DAY_TASKS: Record<number, string[]> = {
  1: ['T1', 'T2', 'T3'], 2: ['T4', 'T5'], 3: ['T6', 'T7'],
  4: ['T8', 'T9', 'T10'], 5: ['T11', 'T12'], 6: ['T13', 'T14'], 7: ['T15'],
};

// §8 线索文本
export const CLUE_TEXT: Record<string, string[]> = {
  C1: ['床头的日历……', '每一页都是同一个日期。'],
  C2: ['配方纸的背面有一行手写小字：', '「按疗程配比。甜度：最大。」'],
  C3: ['邮筒旁散落着一些信。', '所有邮戳……都是同一天。'],
  C4: ['第三封信的署名闪过一串乱码——', '「PT-0▓」'],
  C5: ['货架上，同一件商品重复排了九格。', '标签全是空白。'],
  C6: ['擦到一半，浮现出旧字迹：', '「第 412 届丰收庆典」', '下面还压着「第 411 届」「第 410 届」……'],
  C7: ['你凑近井口，安静地听。', '……滴。', '极轻的一声，像监护仪。'],
  C8: ['医生桌上的表格抬头被手肘挡住，', '只露出「…谷情绪疗…」几个字。'],
  C9a: ['湖水一直很平静。'],
  C9b: ['面包一直是那个味道。'],
  C9c: ['孩子，今天是第几个今天？'],
};

// §9 结局字幕
export const ENDING_TEXT: Record<string, string[]> = {
  E1: ['庆典圆满。', '全村在镜头前微笑合影，定格。', '从此，每一天都很幸福。', '每一天。'],
  E2: ['心电滴声，一响。', '你回到了 Day 1 清晨的床上。', '日历翻回同一天。', '疗程重新开始。'],
  E4: ['庆典无人出席。', '空荡的广场上，彩带在没有风的空气里飘着。', '系统检测到疗程无效。'],
  // E3 组装在 EndingScene（含姓名与真实时长）
};

// 医生固定台词（§4）
export const DOCTOR_LINE = '村里有诊所，但你不需要去那里哦。';

// NPC 日常问候（可腐蚀；原文保持干净）。key 为 npc id。
export const GREET: Record<string, string[]> = {
  afu:   ['你来啦！今天也要幸福地过哦。', '公告板上有新任务，别忘了看看。'],
  yuan:  ['面包刚出炉，闻闻，多甜呀。', '在蜜糖村，每天都是美好的一天呢。'],
  dabao: ['有信要送吗？我最喜欢送信啦。', '大家都是好朋友，对吧？'],
  mimi:  ['要买点什么吗？今天阳光真好呀。', '我最喜欢和你聊天了，说个不停都可以。'],
  fu:    [DOCTOR_LINE, '你看起来很好。真的，很好。'],
  gui:   ['坐一会儿吧，湖边最舒服了。', '我这把年纪，什么都见过咯。'],
};
