fix: fan_stacking验证 + OnEliminate传播 + TurnOrder读DSL
子代理审查(DSL+Core)发现26个问题,本轮修复3个: 1. fan_stacking值验证: 非法值→警告(之前静默以add计算) 2. OnEliminate传播: BuildPhases补映射(PhaseConfig已有属性) 3. TurnOrder读DSL: 之前硬编码counter_clockwise,现读YAML REVIEW_REPORT.md: 子代理审查完整报告(保留作为参考)
This commit is contained in:
@ -109,6 +109,11 @@ public class CapabilityRegistry
|
||||
warnings.Add($"pre_hook「{h.Name}」引擎未实现→{h.Description}");
|
||||
}
|
||||
|
||||
// fan_stacking 值验证
|
||||
var validStackings = new HashSet<string> { "add", "add_max", "max_level" };
|
||||
if (!validStackings.Contains(rules.FanStacking))
|
||||
warnings.Add($"fan_stacking={rules.FanStacking} 非法→仅支持 add/add_max/max_level→已按add计算");
|
||||
|
||||
// Scoring mode
|
||||
if (rules.Scoring.Mode != "fan_table")
|
||||
warnings.Add($"scoring.mode={rules.Scoring.Mode} 引擎仅支持fan_table→忽略");
|
||||
|
||||
@ -99,8 +99,9 @@ public class MahjongRoom
|
||||
Type = p.Type,
|
||||
Action = p.Action ?? "",
|
||||
Next = p.Next,
|
||||
TurnOrder = "counter_clockwise",
|
||||
TurnOrder = p.TurnOrder ?? "counter_clockwise",
|
||||
ParallelElimination = p.ParallelElimination,
|
||||
OnEliminate = p.OnEliminate,
|
||||
SelfActions = p.SubPhases?.SelfAction?.Options?.Select(o => new ActionOption
|
||||
{
|
||||
Action = o.Action, Priority = o.Priority, Condition = o.Condition
|
||||
|
||||
Reference in New Issue
Block a user