fix: 番型互斥从未应用 + FanValue兜底乱给分 + 白名单过滤
Root cause: 1. ApplyFanExclusions定义但从未被调用 → 互斥(清一色⊃缺一门)形同虚设 2. FanValue中 _=>1 兜底 → '缺一门''平胡'等不在DSL的番型也被+1分 3. IdentifyFans返回所有结构模式 → 与DSL配置不一致 修复: - CheckWin五处IdentifyFans调用后加ApplyFanExclusions - FanValue去掉_=>1,改为只认DSL配置+硬编码知名番型 - IdentifyFans末尾白名单过滤:只返回DSL或知名番型 - PhaseMachine.GetFanValue同步更新 - ScoreEngine: 不在DSL的番型→0分
This commit is contained in:
@ -84,15 +84,17 @@ public class MahjongScoreEngine
|
||||
{
|
||||
if (_fanConfig.TryGetValue(fan, out var def))
|
||||
return def.BaseFan;
|
||||
// Fallback for fan names not in config
|
||||
// Hardcoded values for well-known fans not in every DSL
|
||||
return fan switch
|
||||
{
|
||||
"清一色" => 4,
|
||||
"清一色" => 24,
|
||||
"混一色" => 6,
|
||||
"对对胡" => 2,
|
||||
"暗七对" => 4,
|
||||
"暗七对" => 8,
|
||||
"七对" => 8,
|
||||
"带幺九" => 2,
|
||||
"十三幺" => 88,
|
||||
_ => 1
|
||||
_ => 0
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user