- CLAUDE.md 硬性红线新增「文件头零工作日志」;code-conventions.md 新增 §1.4.1(含反面案例) - 全仓 .gd 文件头注清偿:删除全部带日期条目、批次叙事段与迁移退役叙述,保留并改写为 现在时的职责、接口契约、GDD 锚内容(main.gd 头注 42→31 行、save_manager.gd 49→45 行) - 纯注释改动零行为变更,按用户令免测试免冒烟
26 lines
1.7 KiB
GDScript
26 lines
1.7 KiB
GDScript
# VERTICAL SLICE - NOT FOR PRODUCTION
|
||
# Validation Question: 玩家能否无指导在一场完整战斗中经历「开战→挖掘规划→轮末结算逐行兑现→胜/负」并逐行归因(P2)
|
||
# Date: 2026-09-10
|
||
# 数据配置 HeroTable schema(单行全局,Rule 4 豁免)。
|
||
# atk = 基础攻击恒存在:域 [1,999]、0 = 加载拒绝——零基线死锁 schema 层杜绝。
|
||
# 类型轴 armor_type/attack_type 不在本表——契约 2 所有权归锻造工坊:默认值归 forge.tres 常驻持有、
|
||
# 选中态写存档经参数面注入;本表只有
|
||
# 三数值轴 max_hp/atk/armor_class(armor_class=甲路线缺失时兜底基准,甲型基础 AC 归 forge.tres 行)。
|
||
class_name HeroTable
|
||
extends Resource
|
||
|
||
@export var max_hp: int = 50 # [1,999] knob(provisional,溯源 = 原型锚)
|
||
@export var atk: int = 6 # [1,999] knob——基础攻击(溯源 = 概念原型 HERO_BASE_ATK,provisional 归 难度曲线与Boss);消费面 = 战斗结算·战斗段先手攻击
|
||
@export var armor_class: int = 10 # [0,999] knob——防守方护甲等级基准(2026-09-16 护甲等级掷点批,暂定 10 归 难度曲线与Boss);消费面 = 战斗结算掷点判定阈值基数(ac_up 效果加算其上)
|
||
|
||
|
||
func validate() -> Array:
|
||
var errs: Array[Dictionary] = []
|
||
if max_hp < 1 or max_hp > 999:
|
||
errs.append({"category": "domain", "message": "max_hp 越域 [1,999]: %d" % max_hp})
|
||
if atk < 1 or atk > 999:
|
||
errs.append({"category": "domain", "message": "atk 越域 [1,999]: %d" % atk})
|
||
if armor_class < 0 or armor_class > 999:
|
||
errs.append({"category": "domain", "message": "armor_class 越域 [0,999]: %d" % armor_class})
|
||
return errs
|