## VERTICAL SLICE - NOT FOR PRODUCTION ## SealMarkLayer——封印印记的独占承载子件(挂 BoardCellUnit 之下、1:1 贴格;复用 cell_type_glow_layer ## 的子件模式:材质独占、全幅 draw_rect、非零 alpha 触发——不复制其函数体,微光层件零改动)。 ## 层序:印记层在 CellUnit 子树内(低于 BoardView 层的小人精灵——hero 精灵同层后挂天然在上); ## 迷雾态(fog_state != 0)整层隐藏由宿主 fog_state setter 联动承载(§6.5「封印随格隐没」)。 ## 零动效(不呼吸不脉冲——§2.1 挖掘期唯一在动=接触带微光);参数与色全由 gd 注入 ##(单点 = ui_kit SEAL_* 常量——本件禁内联色值与参数字面值)。 extends Node2D const _SEAL_SHADER := preload("res://presentation/views/seal_mark.gdshader") var _mat: ShaderMaterial = null var _edge := 0.0 # 作用集侧唯一入口(on=false 仅隐不撤——子件生命周期归宿主 _sync_seal_layer) func setup(edge: float, on: bool) -> void: _edge = edge visible = on if not on: return if _mat == null: _mat = ShaderMaterial.new() _mat.shader = _SEAL_SHADER material = _mat _mat.set_shader_parameter("cell_px", edge) _mat.set_shader_parameter("ring_frac", UiKit.SEAL_RING_FRAC) _mat.set_shader_parameter("wall_frac", UiKit.SEAL_WALL_FRAC) _mat.set_shader_parameter("arm_frac", UiKit.SEAL_ARM_FRAC) _mat.set_shader_parameter("halo_frac", UiKit.SEAL_HALO_FRAC) _mat.set_shader_parameter("halo_alpha", UiKit.SEAL_HALO_ALPHA) _mat.set_shader_parameter("halo_gamma", UiKit.SEAL_HALO_GAMMA) _mat.set_shader_parameter("mark_col", UiKit.SEAL_BLACK) queue_redraw() func _draw() -> void: if _edge <= 0.0: return # 一格全幅:片元着色器按距离场产出环+十字+环外光圈。 # 输入 alpha 取 1/255(非零)——全透明几何在部分批次路径下会被整条跳过,着色器就跑不到。 draw_rect(Rect2(Vector2.ZERO, Vector2(_edge, _edge)), Color(1, 1, 1, 1.0 / 255.0))