按 code-conventions §1.4.1 第三轮定稿执行:core 22+schemas 18+presentation 根 14+views 28,全部头注 #→##、删日期/变更叙事/GDD 与架构反向链接/字段与域清单/机制描述,保留职责摘要+真实使用约束(防事故禁令/单一入口/信号契约每信号一行)。main.gd 31→5 行、save_manager 45→5 行、adventure_runner 37→5 行为最大单件。子代理分模块执行(波一 core+schemas、波二 presentation+views,并发≤2)。验收=tools/verify_comment_only_change.py 逐字节校验(82 文件头注区外逐行一致=零行为变更)+audit_file_headers 全绿;纯注释批免冒烟(先例 5843270)
18 lines
803 B
GDScript
18 lines
803 B
GDScript
## VERTICAL SLICE - NOT FOR PRODUCTION
|
|
## 同调位求值服务:槽位数与装配参数的纯函数读数面(垂直切片验证:营地装配同调件在战斗内生效)。
|
|
## 零 await、零 RNG、零写副作用——静态纯函数同输入恒同输出,呈现期可安全重复求值。
|
|
class_name Attunement
|
|
extends RefCounted
|
|
|
|
# 同调位实时求值(营地进冒险前求值一次 + 装配覆盖层实时呈现共用同一口径):
|
|
# 槽位数量 = att_socket1..3 树点亮数(tree_level>=1),未点亮=0。
|
|
# db 参数保留(调用面两处签名不变——当前判定源零表依赖,参数弃置)。
|
|
static func slots(db, save) -> int:
|
|
if save == null:
|
|
return 0
|
|
var n := 0
|
|
for i in range(1, 4):
|
|
if save.tree_level("att_socket%d" % i) >= 1:
|
|
n += 1
|
|
return n
|