Merge branch 'master' into m3-iter10-20261001
# Conflicts: # game/smoke/level_autoplay.gd # game/smoke/smoke_all.gd
This commit is contained in:
commit
bc737fb0cb
24 files changed
+1471
-112
No files matched your search
@@ -36,6 +36,7 @@ func _init() -> void:
|
||||
_check("前置:board_gen 词表非空(%d 型)" % types.size(), types.size() > 0)
|
||||
_test_set_completeness(board_dir, types)
|
||||
_test_hue_domains(board_dir)
|
||||
_test_digit_ink_modes(board_dir, types)
|
||||
if _failures > 0:
|
||||
push_error("[terrain_tile_sets_test] %d/%d 项失败" % [_failures, _checks])
|
||||
quit(1)
|
||||
@@ -128,3 +129,47 @@ func _load_stats(board_dir: String, fname: String, top_half: bool) -> Dictionary
|
||||
if n_v == 0 or n_h == 0:
|
||||
return {}
|
||||
return {"h": h_sum / n_h, "v": v_sum / n_v}
|
||||
|
||||
|
||||
# 数字呈现模式对比断言(L2/L3 亮瓦融字缺陷修复 2026-10-01——甲案机检面,v3.4 扩三态):
|
||||
# 每个图型走 BoardView 同一归一+测光+选模式管线(禁测试侧另写算法),断言:
|
||||
# ①dungeon=亮墨族直画(对 p90 ≥4.5 且对均值 ≥2.5);②underdark/deep_underdark=色牌垫底
|
||||
# (双峰纹理直画不可救——渲染帧取证深墨隐形实证,牌上深墨 12:1);③直画模式的双门槛值照抄
|
||||
# BoardView 判据常量(防判据漂移)
|
||||
func _test_digit_ink_modes(board_dir: String, types: Array) -> void:
|
||||
var expect_plate := {"dungeon": false, "underdark": true, "deep_underdark": true}
|
||||
var variants: int = int(BoardViewScript.TILE_FLOOR_VARIANTS)
|
||||
for bt in types:
|
||||
var lumas: Array = []
|
||||
var readable := true
|
||||
for i in range(1, variants + 1):
|
||||
var p := board_dir.path_join("terrain_floor_%s_%d.png" % [String(bt), i])
|
||||
if not FileAccess.file_exists(p):
|
||||
readable = false
|
||||
break
|
||||
var tex: Texture2D = ImageTexture.create_from_image(Image.load_from_file(p))
|
||||
BoardViewScript._normalize_floor_luma(tex, 0.10, lumas)
|
||||
if not readable:
|
||||
_check("图型 %s 数字墨族断言样本可读" % String(bt), false)
|
||||
continue
|
||||
var mode: Dictionary = BoardViewScript._digit_ink_mode(lumas)
|
||||
var plate: bool = bool(mode["plate"])
|
||||
var dark: bool = bool(mode["dark"])
|
||||
var mode_name := "色牌垫底" if plate else ("深墨族直画" if dark else "亮墨族直画")
|
||||
if plate:
|
||||
_check("图型 %s 双峰纹理落牌(亮族 p90 %.2f/均值 %.2f,深族 p90 %.2f/均值 %.2f 均未过门)" % [
|
||||
String(bt), float(mode["cr_p90_bright"]), float(mode["cr_mean_bright"]),
|
||||
float(mode["cr_p90_dark"]), float(mode["cr_mean_dark"])],
|
||||
float(mode["cr_mean_dark"]) < float(BoardViewScript.DIGIT_INK_CR_MEAN_DARK))
|
||||
else:
|
||||
var cr_p90 := float(mode["cr_p90_bright"]) if not dark else float(mode["cr_p90_dark"])
|
||||
var cr_mean := float(mode["cr_mean_bright"]) if not dark else float(mode["cr_mean_dark"])
|
||||
_check("图型 %s 所选%s 对 p90 ≥%.1f(实测 %.2f)" % [String(bt), mode_name,
|
||||
float(BoardViewScript.DIGIT_INK_CR_P90), cr_p90],
|
||||
cr_p90 >= float(BoardViewScript.DIGIT_INK_CR_P90))
|
||||
var mean_gate := float(BoardViewScript.DIGIT_INK_CR_MEAN_BRIGHT) if not dark else float(BoardViewScript.DIGIT_INK_CR_MEAN_DARK)
|
||||
_check("图型 %s 所选%s 对均值 ≥%.1f(实测 %.2f)" % [String(bt), mode_name, mean_gate, cr_mean],
|
||||
cr_mean >= mean_gate)
|
||||
if expect_plate.has(bt):
|
||||
_check("图型 %s 呈现模式期望=%s(实测=%s)" % [String(bt),
|
||||
"色牌" if bool(expect_plate[bt]) else "直画", mode_name], plate == bool(expect_plate[bt]))
|
||||
Reference in new issue
Block a user