fix: 精计数警告拆分,冲关/德国仅type=random时报告

修复前: per_wildcard>0→统一显示"冲关/精数量倍增未支持"(武汉误报)
修复后:
- 通用: per_wildcard>0→"精计数仅含手牌(不含副露)"(所有有精玩法)
- 特定: type=random→"冲关/德国未支持"(仅南昌麻将骰子翻牌定精)

警告现在按玩法类型精准匹配,不再跨玩法误报
This commit is contained in:
xiaoou
2026-07-05 00:13:57 +08:00
parent f231b3a8c2
commit ce3bbc7760

View File

@ -190,11 +190,11 @@ public class CapabilityRegistry
&& rules.WildcardRules.FanCalculationPolicy != "optimal")
warnings.Add($"wildcard_rules.fan_calculation_policy={rules.WildcardRules.FanCalculationPolicy} 引擎未实现→仅optimal生效");
// 精计数限制: 引擎仅统计手牌中的精, 不含副露
// 精计数范围警告: 通用(所有有精牌的玩法)
if (rules.WildcardRules?.Scoring?.PerWildcardInWin > 0)
warnings.Add("精计数仅含手牌(不含副露)→冲关/精数量倍增未支持");
warnings.Add("精计数仅含手牌(不含副露)→per_wildcard_bonus计算范围受限");
// 冲关: 精数量×2^N 倍增计分未实现
// 冲关/德国: 仅南昌麻将骰子翻牌定精相关
if (rules.WildcardRules?.Type == "random")
warnings.Add("骰子翻牌定精: 冲关(精数×2^N)/德国(无精胡)计分规则引擎未实现");