工程(判据出处注记4/7·presentation+剩余探针+system/smoke/example): 21套件+11探针+3宿主逐函数/逐段挂# oracle注记——HUD框架:260-282拒绝三源/明细行/状态槽/微光/三区几何/对比度+camp.md:16/29/45+level-map:3/11+level-clear+node-reward+设置与本地化:95+锻造工坊窗口内容+battle.md:122/128/154+战斗表现:148+test-conventions:30/37/84+code-conventions:41/54+architecture:168+README术语表; tune_sim_batch_parity(调参测量域)零规格句不造锚——记规格缺口待裁; 本步凭据: 抽验4套件+5探针+system_test+ui_click直跑全绿
This commit is contained in:
1 parent
9e26df16be
commit
085717166d
32 files changed
+97
-2
No files matched your search
@@ -26,6 +26,7 @@ var _cur_settlement = null # 当关 settlement(身份回调读取面——
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
# oracle: design/engineering/test-conventions.md:84(棋盘截图取证——渲染闸采集组)
|
||||
# 运行前提=窗口化真渲染面(shot_probe 同款护栏——headless 下 frame_post_draw 永不触发+视口纹理恒空)
|
||||
if DisplayServer.get_name() == "headless":
|
||||
print("[board_shot] FAIL — 本探针必须窗口化运行(headless 无渲染面,截图必空);现行事实源=tools/render_gate.sh 取证段")
|
||||
@@ -181,6 +182,7 @@ func _ready() -> void:
|
||||
# 判据:环外径像素 ÷ 格边 落 0.82±1px;封印格最外圈 1px 框最暗值与相邻未封印未开格同位框最暗值差 ≤1/255
|
||||
#(halo 在 0.455×格边归零——格边框不应被压暗;相邻未开格同砖纹理同套瓦片为无封印参照)。
|
||||
func _seal_evidence(tag: String, view: Node, settlement: Object, off_img: Image, out: String) -> void:
|
||||
# oracle: design/engineering/test-conventions.md:84(封印印记像素取证组)
|
||||
var ms = settlement.minesweeper
|
||||
var seal_cell := Vector2i(-9, -9)
|
||||
var ref_cell := Vector2i(-9, -9)
|
||||
|
||||
@@ -8,6 +8,7 @@ extends Node
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
# oracle: design/gdd/systems/战斗循环/战斗表现.md:148(结算演出——挖掘期零打扰组)
|
||||
await get_tree().process_frame
|
||||
var problems: Array = []
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ var _problems: Array = []
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
# oracle: design/engineering/test-conventions.md:84(特效截图取证——渲染闸采集组)
|
||||
var args := OS.get_cmdline_user_args()
|
||||
out_dir = args[0] if args.size() >= 1 and args[0] != "" else "user://qa-fx"
|
||||
DirAccess.make_dir_recursive_absolute(out_dir)
|
||||
|
||||
@@ -19,6 +19,7 @@ var _est_reads: Dictionary = {} # 逐档 13/14 板推定读数留痕(label
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
# oracle: design/gdd/systems/表现与支撑/HUD框架.md:264(战斗屏三区几何与棋盘格边长——分辨率档位组)
|
||||
await get_tree().process_frame
|
||||
var main: Node = load("res://presentation/main.tscn").instantiate()
|
||||
add_child(main)
|
||||
@@ -58,6 +59,7 @@ func _ready() -> void:
|
||||
|
||||
# 一份不变量断言,逐档代入——代码量与档数无关
|
||||
func _check_one(label: String, main: Node) -> void:
|
||||
# oracle: design/gdd/systems/表现与支撑/HUD框架.md:264(单档几何断言组)
|
||||
var vr: Rect2 = get_viewport().get_visible_rect()
|
||||
if vr.size != Vector2(VIEWPORTS[0]["size"]) and vr.size.y < 1.0:
|
||||
_problems.append("[%s] 逻辑视口退化 %s" % [label, vr.size])
|
||||
|
||||
@@ -11,6 +11,7 @@ extends Node
|
||||
const SEED_L3 := 910212 # 深图固定种子(与 level_map_viewport_probe 同源——图确定性承载)
|
||||
|
||||
func _ready() -> void:
|
||||
# oracle: design/engineering/test-conventions.md:84(关卡画面截图取证——载入守卫组)
|
||||
var args := OS.get_cmdline_user_args()
|
||||
var out_dir := args[0] if args.size() > 0 else "user://"
|
||||
await get_tree().process_frame
|
||||
|
||||
@@ -28,6 +28,7 @@ func _check(desc: String, ok: bool) -> void:
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
# oracle: design/gdd/ux/level-map.md:3(关卡画面视口跟随——卷轴视口组)
|
||||
await get_tree().process_frame
|
||||
await get_tree().process_frame
|
||||
var host := Control.new()
|
||||
@@ -60,6 +61,7 @@ func _ready() -> void:
|
||||
|
||||
## R1 浅图整幅居中无裁切+画布入视口件承载(画布=视口首子件——setup 注入序)
|
||||
func _probe_shallow_no_crop(screen, vp) -> void:
|
||||
# oracle: design/gdd/ux/level-map.md:3(浅层不裁切组)
|
||||
_runner = _make_runner_entry(1, SEED_L1)
|
||||
screen.open_choices(_cand_nodes(_runner), _runner)
|
||||
await get_tree().process_frame
|
||||
@@ -78,6 +80,7 @@ func _probe_shallow_no_crop(screen, vp) -> void:
|
||||
|
||||
## R5 前置+深图入口停点:锚点=入口组包围盒中心夹紧(spec :101——多入口并列取包围盒居中)
|
||||
func _probe_deep_entry_clamp(screen, vp) -> void:
|
||||
# oracle: design/gdd/ux/level-map.md:3(深层入口钳制组)
|
||||
_runner = _make_runner_entry(3, SEED_L3)
|
||||
screen.open_choices(_cand_nodes(_runner), _runner)
|
||||
await get_tree().process_frame
|
||||
|
||||
@@ -13,6 +13,7 @@ var _problems: Array = []
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
# oracle: design/gdd/ux/battle.md:122(明细带挖掘期收起——T17 视觉扩展时序组)
|
||||
await get_tree().process_frame
|
||||
main = load("res://presentation/main.tscn").instantiate()
|
||||
add_child(main)
|
||||
|
||||
@@ -30,6 +30,7 @@ var _hero_pos := Vector2i.ZERO
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
# oracle: design/engineering/test-conventions.md:84(微光截图取证——渲染闸采集组)
|
||||
if DisplayServer.get_name() == "headless":
|
||||
print("[type_glow_shot] FAIL — 本探针必须窗口化运行(headless 无渲染面,截图必空)")
|
||||
get_tree().quit(1)
|
||||
|
||||
@@ -54,6 +54,7 @@ func _ready() -> void:
|
||||
if main.ui.modals.menu.debug_overlay.visible:
|
||||
_problems.append("调试浮窗 boot 自动开(菜单优先失守)")
|
||||
# ---- 营地购买合成点击路径(选档进档开层→购买→关闭全走真实按钮信号路径;
|
||||
# oracle: design/gdd/systems/跨局循环/天赋树.md:198(营地购买段——单币购买只扣钥石组)
|
||||
# 隔离存档换注 main.meta 保确定性(禁碰真实档 user://save.json);陈旧档段首清理)----
|
||||
for p0 in ["user://smoke_click_probe_reset.json", "user://smoke_click_probe_reset.json.tmp"]:
|
||||
if FileAccess.file_exists(p0):
|
||||
@@ -191,6 +192,7 @@ func _ready() -> void:
|
||||
if main.ui.modals.camp.scene.visible or not main.ui.screens.start_overlay.visible:
|
||||
_problems.append("营地关闭后未恢复开始层〔句柄子容器批 V1〕")
|
||||
# ---- 选档界面行为走查(迭代 33 卡③):sl5 空槽新档链/sl6 有档槽进档链/sl7 删档二次确认双路径
|
||||
# oracle: design/gdd/systems/表现与支撑/存档序列化.md:61(选档走查段——激活态建立组)
|
||||
# /sl8 消费方分派单口/sl12 动线序不回闪。开层=函数直调(「进入存档」钮归卡② mn3——中间态在案);
|
||||
# 隔离=attach_slot_template 注入命名空间,夹具按槽直写(卡① 注入口)。----
|
||||
var csel_tpl := "user://smoke_click_probe_savesel_slot_%d.json"
|
||||
@@ -294,6 +296,7 @@ func _ready() -> void:
|
||||
_problems.append("[savesel] 关闭后层未隐藏或开始层未恢复(模态栈单口失守)")
|
||||
|
||||
# ---- 设置面段(隔离 store 换注禁碰真实 user://settings.cfg;真实按钮信号路径)----
|
||||
# oracle: design/gdd/systems/表现与支撑/设置与本地化.md:4(设置面段——最小设置面组)
|
||||
for p0 in ["user://smoke_click_probe_settings.cfg"]:
|
||||
if FileAccess.file_exists(p0):
|
||||
DirAccess.remove_absolute(p0)
|
||||
@@ -360,6 +363,7 @@ func _ready() -> void:
|
||||
if ProbeUiUtil.find_button(main.ui.modals.menu.settings_overlay, "退出游戏", "prefix") != null:
|
||||
_problems.append("设置面仍含退出游戏按钮(二轮 D1——只在一级菜单出现)")
|
||||
# ---- 生涯页段(入口点击链+关闭回返,真实按钮信号路径;本页只读零写,
|
||||
# oracle: design/gdd/ux/camp.md:45(生涯页段——同壳同形态组)
|
||||
# 值断言归冒烟投影段与 ui_struct 结构族,此处只验开合路径与零跳转)----
|
||||
# 生涯页驱动=函数直调中间态(卡② mn10——careerbtn 已撤,卡④ 笔记本改挂前无 UI 路径)
|
||||
if true:
|
||||
@@ -604,7 +608,7 @@ func _ready() -> void:
|
||||
_run_modal_probes_once()
|
||||
_play_one_action()
|
||||
# ---- 预算耗尽收口(T17 硬锁批适配):选件变强后 probe 可能活过预算不再战败——断点段前提
|
||||
# (冒险终局面在案)须主动满足。收口驱动:任何停点层逐个推进(复用主循环分支语义)至
|
||||
# oracle: design/gdd/ux/level-map.md:11(主循环选路段——入口候选组) # (冒险终局面在案)须主动满足。收口驱动:任何停点层逐个推进(复用主循环分支语义)至
|
||||
# level_screen 选路停点→真实放弃二击→终局面。战斗中则继续 autoplay 打完。
|
||||
if not _done and not main.ui.modals.run.end_overlay.is_open():
|
||||
var close_guard := 8000
|
||||
@@ -649,7 +653,7 @@ func _ready() -> void:
|
||||
_play_one_action()
|
||||
# 排播期/Waiting 等待态=自然流逝(演播秒级、锁随队列空解除)
|
||||
# T17 适配:战败或放弃二途皆达终局面(放弃=预算耗尽收口路径——见上),断点段前提不变。
|
||||
await get_tree().process_frame
|
||||
# oracle: design/gdd/systems/表现与支撑/存档序列化.md:180(断点段——断点域与续玩组) await get_tree().process_frame
|
||||
var bp_file := "user://smoke_click_probe_reset.json"
|
||||
var iso_chk = load("res://core/save_manager.gd").new(bp_file)
|
||||
iso_chk.load_from_disk()
|
||||
@@ -680,6 +684,7 @@ func _ready() -> void:
|
||||
# ① 战斗收口断点写盘断言保留(上方——冒险流直调中间态 mn10)。
|
||||
|
||||
# ---- 大门两分支断言段(卡④ T5 接收——卡② 移交落点;V3 断言面)----
|
||||
# oracle: design/gdd/ux/camp.md:16(大门段——点大门先出确认组)
|
||||
# 驱动=营地场景根点选信号(真实路由)→组合根 _on_camp_object_pressed→确认弹窗。
|
||||
# 无断点=两出口(是/否);有断点=三出口(set_breakpoint 注入选路停点形——同下方开场行③先例)。
|
||||
# 判据绑可观测提交面:点大门不直接进冒险(is_adventure 翻转只在 confirmed 后);cancelled 恒=
|
||||
@@ -1046,6 +1051,7 @@ func _click_stop() -> void:
|
||||
|
||||
|
||||
# ---- T1 D1:锁期/重放断言(每 run 一次,脚本化场景——演播期豁免的断言化承载) ----
|
||||
# oracle: design/gdd/systems/排雷循环/排雷玩法.md:236(锁期/重放段——拒绝与锁组)
|
||||
# 锁期断言(排播队列活跃=锁面):注入封印击 → 直落被冻结不受理(封印未置)+ `_locked_click`
|
||||
# 缓存命中且为本注入(「最后一次」语义——注入帧内无并发点击)。
|
||||
# 重放断言(演播完边沿 pump_ended→_replay_locked_click 重入唯一动作通道):缓存清空 +
|
||||
|
||||
@@ -88,6 +88,7 @@ func _ratio(a: Color, b: Color) -> float:
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
# oracle: design/gdd/systems/表现与支撑/HUD框架.md:281(UI 文字对比度机检 ≥4.5:1 无区域例外——对比度组)
|
||||
var problems: Array = []
|
||||
var pairs := _pairs()
|
||||
for p in pairs:
|
||||
|
||||
Reference in new issue
Block a user