fix(iter37①): T1 core 域缺陷修——单据归属判定/数值入表/公式单点/信号契约载体统一
- d1 伤害控制器来源敌作废判定 `==`→`is_same`(同内容异实例不再误废;夹具双敌两断言〔wd1〕) - d11 shop 表新增 relic_base_price/spend_discount 两 knob+域检+ConfigDB 访问器+level_runner 读表; level_shop_economy_test 三表值断言+relic 现价读表与迁移前字面量逐位等价〔wd11〕 - d16a HeroTable.display_name+域检+访问器+unit_container 读表;spawn 真实链断言〔wd16〕 - d14 board_generator 目标雷数公式单点 target_mine_count(两调用点改引)+legality 去 db 参数(两调用点同批改)〔wd14〕 - d15 蓄力层上限 CHARGE_LAYER_CAP 常量(两处字面量+注释随动) - d16b unit_container/status_container 六处 Dictionary 取值显式 int() 包裹(读侧包) - d10 minesweeper 两信号按 §2.1 三要素补契约(载荷键集按发射位并集实查)+全库 28 处信号注释载体 #→## 撤销证明:回退 d1 hunk → 同容异实例断言红(A 单据被 B 死亡误废),还原复绿; 回退 d10 契约 → 契约在位扫描 undocumented=2 红,还原归零。等价类申报(d11/d14/d15/d16)见实现报告。 代拍板:#1 target_mine_count 签名(照接口块)、#2 契约措辞与载荷键并集(实查发射位)、#4 int() 读侧包写法。
This commit is contained in:
1 parent
a0acdf5c43
commit
1b9736f065
25 files changed
+186
-59
No files matched your search
@@ -8,6 +8,7 @@ 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——防守方护甲等级基准(暂定 10 归 难度曲线与Boss);消费面 = 战斗结算掷点判定阈值基数(ac_up 效果加算其上)
|
||||
@export var display_name: String = "探险者" # 英雄单位显示名(与敌人行 display_name 同轴;单位快照读取面单源)
|
||||
|
||||
|
||||
func validate() -> Array:
|
||||
@@ -18,4 +19,6 @@ func validate() -> Array:
|
||||
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})
|
||||
if display_name.strip_edges() == "":
|
||||
errs.append({"category": "domain", "message": "display_name 为空"})
|
||||
return errs
|
||||
@@ -12,6 +12,8 @@ extends Resource
|
||||
@export var pool_shelf: Array[Dictionary] = [] # Array[Dictionary] 键 kind_id
|
||||
@export var price_a: float = 0.0 # 进店已购次数爬价因子(provisional——0 = 未投值即致命域)
|
||||
@export var price_b: float = 0.0 # 跨关递增因子(provisional)
|
||||
@export var relic_base_price: float = 15.0 # relic 保底卡基价(provisional——池令牌非货架种,词表外专枝)
|
||||
@export var spend_discount: float = 0.8 # 财富之道·散 economy_spend 激活时的购买折扣(provisional)
|
||||
|
||||
const GP_TIERS := ["normal", "elite", "boss"]
|
||||
const PRODUCT_ATTRS := ["atk", "max_hp", "armor_class"]
|
||||
@@ -102,4 +104,8 @@ func validate() -> Array:
|
||||
errs.append({"category": "domain", "message": "price_a 越域 [1.0,3.0]: %f" % price_a})
|
||||
if price_b < 1.0 or price_b > 2.0:
|
||||
errs.append({"category": "domain", "message": "price_b 越域 [1.0,2.0]: %f" % price_b})
|
||||
if relic_base_price < 1.0 or relic_base_price > 99.0:
|
||||
errs.append({"category": "domain", "message": "relic_base_price 越域 [1.0,99.0]: %f" % relic_base_price})
|
||||
if spend_discount <= 0.0 or spend_discount > 1.0:
|
||||
errs.append({"category": "domain", "message": "spend_discount 越域 (0.0,1.0]: %f" % spend_discount})
|
||||
return errs
|
||||
@@ -7,6 +7,7 @@ script = ExtResource("1")
|
||||
max_hp = 26
|
||||
atk = 2
|
||||
armor_class = 10
|
||||
display_name = "探险者"
|
||||
|
||||
; 〔2026-10-12 迭代 23 锻造工坊实装批 T2——两根类型轴删除(契约 2 所有权移交):armor_type/
|
||||
; attack_type 两字段随本批从静态表删除,默认值归锻造工坊配置常驻持有(forge.tres
|
||||
|
||||
@@ -92,6 +92,8 @@ pool_shelf = [{
|
||||
}]
|
||||
price_a = 1.8
|
||||
price_b = 1.1
|
||||
relic_base_price = 15.0
|
||||
spend_discount = 0.8
|
||||
|
||||
; GP+商店房实施批(2026-09-20 用户拍板,设计权威 design/research/proposal-gp-shop-room-2026-09-20.md 裁决记录):
|
||||
; 掉落=均值±方差掷定(gp_drop 封闭流)+关级加值;精英行为预留行(当前无消费方,随精英节点内容批启用);
|
||||
|
||||
Reference in new issue
Block a user