Files
eryao/apps/lib/shared/widgets/divination/divination_terms.dart
T
qzl e80a82bef4 docs: 更新协议文档,删除废弃计划文档
- 更新 http-error-codes, user-points-chat-data-protocol
- 更新 divination-run-protocol, profile-protocol
- 删除废弃的后端和前端设计计划文档
2026-04-08 17:23:02 +08:00

106 lines
3.1 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import '../../../features/divination/data/models/divination_params.dart';
import '../../../l10n/app_localizations.dart';
abstract final class DivinationTerms {
static const yaoNames = ['初爻', '二爻', '三爻', '四爻', '五爻', '上爻'];
static const yaoTypeLabels = {
YaoTypeLabel.youngYang: '少阳',
YaoTypeLabel.youngYin: '少阴',
YaoTypeLabel.oldYang: '老阳',
YaoTypeLabel.oldYin: '老阴',
};
static const yinYang = {true: '', false: ''};
static const ziHua = {true: '', false: ''};
static const wuXing = ['', '', '', '', ''];
static const yuanZhi = '';
static const changeMarkOldYang = '';
static const changeMarkOldYin = '×';
static const yinYangSymbol = {true: '', false: '--'};
static const youngYangSymbol = '';
static const youngYinSymbol = '--';
static const oldYangSymbol = '—○';
static const oldYinSymbol = '--×';
static const signBest = '上上签';
static const signGood = '中上签';
static const signNormal = '中下签';
static const signWorst = '下下签';
static const ganZhi = '干支';
static const ganZhiInfo = '干支信息';
static const ganZhiKongWang = '干支空亡';
static const yueJian = '月建';
static const riChen = '日辰';
static const yuePo = '月破';
static const riChong = '日冲';
static const wuXingWangShuai = '五行旺衰';
static const guaXiang = '卦象';
static const yaoXiang = '爻象';
static const qiGua = '起卦';
static const jieGua = '解卦';
static String yaoName(AppLocalizations l10n, int index) {
return switch (index) {
0 => l10n.yaoNameFirst,
1 => l10n.yaoNameSecond,
2 => l10n.yaoNameThird,
3 => l10n.yaoNameFourth,
4 => l10n.yaoNameFifth,
5 => l10n.yaoNameTop,
_ => '',
};
}
static String yinYangLabel(AppLocalizations l10n, bool isYang) {
return isYang ? l10n.yaoYang : l10n.yaoYin;
}
static String yaoTypeLabel(AppLocalizations l10n, YaoType type) {
return switch (type) {
YaoType.youngYang => l10n.yaoYoungYang,
YaoType.youngYin => l10n.yaoYoungYin,
YaoType.oldYang => l10n.yaoOldYang,
YaoType.oldYin => l10n.yaoOldYin,
YaoType.undetermined => '',
};
}
}
enum YaoTypeLabel { youngYang, youngYin, oldYang, oldYin }
extension YaoTypeLabelX on YaoType {
String get label {
return switch (this) {
YaoType.youngYang =>
DivinationTerms.yaoTypeLabels[YaoTypeLabel.youngYang]!,
YaoType.youngYin => DivinationTerms.yaoTypeLabels[YaoTypeLabel.youngYin]!,
YaoType.oldYang => DivinationTerms.yaoTypeLabels[YaoTypeLabel.oldYang]!,
YaoType.oldYin => DivinationTerms.yaoTypeLabels[YaoTypeLabel.oldYin]!,
YaoType.undetermined => '',
};
}
String get changeMark {
return switch (this) {
YaoType.oldYang => DivinationTerms.changeMarkOldYang,
YaoType.oldYin => DivinationTerms.changeMarkOldYin,
_ => '',
};
}
bool get isYang {
return switch (this) {
YaoType.youngYang || YaoType.oldYang => true,
_ => false,
};
}
}