class IntimacyUtil { IntimacyUtil._(); static final List intimacyLevels = [ IntimacyLevel(max: 20, min: 0, name: "初相识", median: 10), IntimacyLevel(max: 40, min: 21, name: "追爱期", median: 30), IntimacyLevel(max: 60, min: 41, name: "暧昧期", median: 50), IntimacyLevel(max: 80, min: 61, name: "恋人", median: 70), IntimacyLevel(max: 90, min: 81, name: "伴侣", median: 85), IntimacyLevel(max: 100, min: 91, name: "老夫老妻", median: 95), ]; /// 获取亲密程度名称 static String getIntimacyName(int intimacy) { for (final level in intimacyLevels) { if (intimacy >= level.min && intimacy <= level.max) { return level.name; } } return "未知"; } /// 获取对应的亲密程度对象 static IntimacyLevel? getIntimacyLevel(int intimacy) { for (final level in intimacyLevels) { if (intimacy >= level.min && intimacy <= level.max) { return level; } } return null; } static int getMedianByIndex(int index) { if (index >= 0 && index < intimacyLevels.length) { return intimacyLevels[index].median; } return 0; } } class IntimacyLevel { final int max; final int min; final String name; final int median; const IntimacyLevel({ required this.max, required this.min, required this.name, required this.median, }); @override String toString() => 'IntimacyLevel($name: $min-$max)'; }