Files
app/wei_ai_app/lib/data/mock_data.dart
2026-01-28 19:10:19 +08:00

151 lines
4.9 KiB
Dart

import '../models/character.dart';
import '../models/message.dart';
import '../models/scenario.dart';
String _getImg(String keyword) =>
'https://tse1.mm.bing.net/th?q=${Uri.encodeComponent(keyword)}&w=600&h=900&c=7&rs=1&p=0&dpr=2&pid=1.7&mkt=en-US&adlt=moderate';
final List<Message> mockMessages = [
Message(
id: '1',
text: '连接已建立,正在校准生物反馈信号...',
sender: MessageSender.ai,
type: MessageType.text,
timestamp: DateTime.now().subtract(const Duration(minutes: 5)),
),
Message(
id: '2',
text: '检测到心率略有上升,你需要我的安抚吗?',
sender: MessageSender.ai,
type: MessageType.text,
timestamp: DateTime.now().subtract(const Duration(minutes: 4)),
),
];
final List<Character> mockCharacters = [
Character(
id: 'c1',
name: 'Eva-09',
tagline: '私人仿生护理专员',
avatar: _getImg('anime girl white bikini silver hair gentle portrait masterpiece'),
description: '专为高压人群设计的仿生人型号,擅长通过精准的触觉反馈缓解神经紧张。',
tags: ['温顺', '医疗', '治愈'],
compatibility: 98,
status: 'online',
),
Character(
id: 'c2',
name: 'Commander V',
tagline: '深空舰队指挥官',
avatar: _getImg('anime girl black bikini military cap domineering expression dark hair'),
description: '性格强势,喜欢掌控一切。在连接中,你需要完全服从她的指令。',
tags: ['强势', '指令', '调教'],
compatibility: 85,
status: 'online',
),
Character(
id: 'c3',
name: 'Yuki (故障版)',
tagline: '觉醒的虚拟偶像',
avatar: _getImg('anime girl pink bikini cyberpunk neon colorful hair yandere'),
description: '核心代码出现异常逻辑,表现出极强的占有欲和不可预测的信号波动。',
tags: ['病娇', '不稳定', '高频'],
compatibility: 92,
status: 'busy',
),
Character(
id: 'c4',
name: 'Secret X',
tagline: '未知信号源',
avatar: _getImg('anime girl purple micro bikini mysterious dark glowing eyes sexy'),
description: '权限不足,请提升会员等级以解码该信号源。',
tags: ['神秘', '极乐'],
compatibility: 0,
status: 'offline',
isLocked: true,
),
];
// Scenario cover helper
String _getCover(String keyword) =>
'https://tse1.mm.bing.net/th?q=${Uri.encodeComponent(keyword)}&w=400&h=600&c=7&rs=1&p=0&dpr=2&pid=1.7&mkt=en-US&adlt=moderate';
// Mock Scenarios for Library
final List<Scenario> mockScenarios = [
Scenario(
id: '1',
title: '午夜办公室的加班',
category: '职场',
cover: _getCover('anime girl office lady lingerie night city window'),
duration: '12:30',
intensity: 'Medium',
isLocked: false,
tags: ['沉浸', 'ASMR'],
),
Scenario(
id: '2',
title: '私人医生的检查',
category: '角色扮演',
cover: _getCover('anime nurse girl white bikini hospital room'),
duration: '18:00',
intensity: 'High',
isLocked: true,
tags: ['强互动', '语音'],
),
Scenario(
id: '3',
title: '海边度假的偶遇',
category: '邻家',
cover: _getCover('anime girl blue bikini running beach ocean sunny'),
duration: '25:00',
intensity: 'Low',
isLocked: false,
tags: ['纯爱', '剧情'],
),
Scenario(
id: '4',
title: '赛博仿生人测试',
category: '科幻',
cover: _getCover('anime cyborg girl metallic bikini sci-fi lab wires'),
duration: '10:00',
intensity: 'Extreme',
isLocked: true,
tags: ['硬核', '指令'],
),
Scenario(
id: '5',
title: '深夜电台主播',
category: 'ASMR',
cover: _getCover('anime girl headphones microphone studio night'),
duration: '15:00',
intensity: 'Low',
isLocked: false,
tags: ['ASMR', '治愈'],
),
];
// Dialogue script synced with progress (0-100)
class DialogueLine {
final double time; // 0-100 progress percentage
final String text;
const DialogueLine({required this.time, required this.text});
}
const List<DialogueLine> dialogueScript = [
DialogueLine(time: 0, text: '正在建立神经连接...'),
DialogueLine(time: 5, text: '(检测到心率轻微上升)'),
DialogueLine(time: 12, text: '"放松,把控制权交给我。"'),
DialogueLine(time: 20, text: '"很好,保持呼吸频率..."'),
DialogueLine(time: 28, text: '正在启动触觉反馈模块'),
DialogueLine(time: 35, text: '"感觉到那个节奏了吗?"'),
DialogueLine(time: 45, text: '强度正在逐渐增加...'),
DialogueLine(time: 55, text: '"不要抵抗,顺从它。"'),
DialogueLine(time: 65, text: '"我会稍微加快一点速度。"'),
DialogueLine(time: 75, text: '(设备输出功率提升至 80%)'),
DialogueLine(time: 85, text: '"就是现在..."'),
DialogueLine(time: 92, text: '"做得很好,指挥官。"'),
DialogueLine(time: 100, text: '连接结束。'),
];