merge: 分支并入 master(吸收卡③⑤落籍 de067ae/0dbe3c3+台账 f8c064c/a65d8d2)——roadmap 相邻行换代冲突按 union 解=⑤行取 master 落籍版+⑦行取本卡状态版〔措辞「未合并待实机人闸」更正「实机人闸挂账待用户」〕,行序 ③④⑤⑦⑲ 保持;先例=台账 386 分支内并入
This commit is contained in:
commit
b159d77970
9 files changed
+589
-7
No files matched your search
@@ -206,6 +206,29 @@ rows = [{
|
||||
"armor_class": 8
|
||||
}, {
|
||||
"level_index": 2,
|
||||
"node_depth": 5,
|
||||
"enemy_id": "giant_spider",
|
||||
"display_name": "巨蜘蛛巢群",
|
||||
"unit_count": 2,
|
||||
"unit_count_max": 3,
|
||||
"hp": 26,
|
||||
"atk": 1,
|
||||
"atk_min": 1,
|
||||
"atk_max": 2,
|
||||
"pool": [{
|
||||
"skill_id": "attack",
|
||||
"weight": 6
|
||||
}, {
|
||||
"skill_id": "bite",
|
||||
"weight": 2
|
||||
}, {
|
||||
"skill_id": "charge",
|
||||
"weight": 1
|
||||
}],
|
||||
"armor_type": "light",
|
||||
"armor_class": 2
|
||||
}, {
|
||||
"level_index": 2,
|
||||
"node_depth": 6,
|
||||
"enemy_id": "giant_spider",
|
||||
"display_name": "巨蜘蛛巢群",
|
||||
@@ -587,3 +610,17 @@ rows = [{
|
||||
; 「危险来自雷,不来自杂兵」:杂兵垫刀减半,雷直伤 6/8/8 维持痛感;L2/L3(atk 3 系)本刀不动。
|
||||
; 全旧带读数随新尺作废重测归本批。
|
||||
; 调参二补充:上述八行 atk 区间 1-3→0-2(中点恒等期望当量锚不变式——atk=1 需区间中点同步 1;0=掷点空刀,保随机手感)。
|
||||
;
|
||||
; 混编遭遇首批投放批(2026-10-07 迭代 18 卡⑤——任务书 v1.2 裁点全裁 P1-P4 甲;机制前置=敌人表行集多行批
|
||||
; 已落籍 9cc4b8b):首个混编遭遇行落表 = (2,5) 双行行集〔R6 行序契约:同坐标两行文件内相邻、
|
||||
; 行序=声明序=生成序——resolver 返回序/生成序/断言面全依赖文件行序〕:
|
||||
; 行 1 = 既有 熊地精重击手 (2,5,bugbear)(行值零变更);
|
||||
; 行 2 = 新增 (2,5,giant_spider) 巨蜘蛛巢群——行值整行复制 (2,6) 巢群行(P4 甲零数值新增:unit_count 2/
|
||||
; unit_count_max 3/hp 26/atk 1/atk [1,2]/池 普攻6·撕咬2·蓄力1/light/armor_class 2),
|
||||
; 行序=重击手在前(默认目标=前排坦克 ac 8,蜘蛛后排输出——强弱搭配形态)。
|
||||
; 设计意图(P1 甲单点试水):「巨蜘蛛+熊地精」同场混编——生产内容实打卡①「每行一骰数量骰」交付面
|
||||
; (重击手定值不骰、蜘蛛掷 [2,3],同场两种数量语义并存);静态最坏骰和 = 1+3 = 4 ≤ ENEMY_ROWSET_INSTANCE_MAX
|
||||
; (spawn 期守卫内)。
|
||||
; 读数预期:(2,5) 场敌人 3-4 只(3=重击手 1+蜘蛛 2,4=蜘蛛掷 3);L2 难度带位移读数随 Alpha 收官 M4 数值批
|
||||
; 统一执行(07 在册义务——MC 取证跑批届时另报批,本批零跑)。禁区排查:巨蜘蛛首遇位 (2,4)「固定 2 不加骰」
|
||||
; 零触碰、Boss d9 零触碰、跨关混编禁令过(两敌种首遇关均 ≤L2)、既有 19 行现值零变更。
|
||||
+19
-2
@@ -3060,6 +3060,7 @@ func _smoke_skill_pool_data() -> void:
|
||||
"2_0_bugbear": {"attack": 6, "lunge": 1, "heavy": 2},
|
||||
"2_1_bugbear": {"attack": 6, "lunge": 1, "heavy": 2},
|
||||
"2_4_giant_spider": {"attack": 6, "bite": 2, "charge": 1},
|
||||
"2_5_giant_spider": {"attack": 6, "bite": 2, "charge": 1},
|
||||
"2_5_bugbear": {"attack": 5, "lunge": 2, "heavy": 2},
|
||||
"2_6_giant_spider": {"attack": 6, "bite": 2, "charge": 1},
|
||||
"2_7_giant_spider": {"attack": 6, "bite": 2, "charge": 1},
|
||||
@@ -3083,7 +3084,7 @@ func _smoke_skill_pool_data() -> void:
|
||||
got[String(entry.skill_id)] = int(entry.weight)
|
||||
if got != expect_pools[rk]:
|
||||
pools_ok = false
|
||||
check(pools_ok, "十九行九种池模板 = 建议池行值((L,D,enemy_id) 三元键逐行精确比对——2026-10-07 行集多行批口径;L1 地精 9/1 · 熊地精 6/2/2 · 酋长 6/2/2;L2 熊地精 6/1/2 · 蜘蛛 6/2/1 · 重击手 5/2/2 · 蛛化卓尔精灵 6/2/2/2〔(2,9)——商店房批 Boss 重编号〕;L3 灰矮人 6/2/2 · 钩爪恐魔 6/2/1 · 重装手 5/2/2 · 石君王 6/2/2〔earth_pulse·(3,9)〕——全部 provisional;三 Boss 池尾 +1 门控条目〔quake_smash/venom_curb/rockslide 权重 2+unlock_hp_pct 50——迭代14④ T5〕;混编行集同坐标多行各一池合法,零内容期每坐标仍恰一行)")
|
||||
check(pools_ok, "二十行九种池模板 = 建议池行值((L,D,enemy_id) 三元键逐行精确比对——2026-10-07 行集多行批口径;L1 地精 9/1 · 熊地精 6/2/2 · 酋长 6/2/2;L2 熊地精 6/1/2 · 蜘蛛 6/2/1 · 重击手 5/2/2 · 蛛化卓尔精灵 6/2/2/2〔(2,9)——商店房批 Boss 重编号〕;L3 灰矮人 6/2/2 · 钩爪恐魔 6/2/1 · 重装手 5/2/2 · 石君王 6/2/2〔earth_pulse·(3,9)〕——全部 provisional;三 Boss 池尾 +1 门控条目〔quake_smash/venom_curb/rockslide 权重 2+unlock_hp_pct 50——迭代14④ T5〕;混编行集同坐标多行各一池合法——首批投放 (2,5) 双行〔迭代 18 卡⑤:重击手+巢群,新行行值复制 (2,6)〕,其余坐标仍恰一行)")
|
||||
var basic_count_ok := true
|
||||
for row in _db.enemy.rows:
|
||||
var n := 0
|
||||
@@ -3548,6 +3549,22 @@ func _smoke_level_graph() -> void:
|
||||
l2_boss_ids[String(r.get("enemy_id", ""))] = true
|
||||
check(l2_boss_ids.has("drider") and l2_boss_ids.size() == 1 and String(l2_boss_set[0].get("armor_type", "")) == "ward",
|
||||
"蛛化卓尔精灵 Boss 行集 (2,9) = {drider} 恰一行且首行魔法甲(护甲类型重配批 2026-09-18:关卡 2 唯一非轻甲;商店房批重编号 (2,8)→(2,9);P4 乙 Boss 行集多行合法——零内容期仍单行)")
|
||||
# ⑦b 定点:首批混编遭遇行集 (2,5)(2026-10-07 迭代 18 卡⑤投放——R6 行序契约运行面:
|
||||
# 行集两行文件内相邻、行序 = 声明序 = 生成序;静态最坏骰和 Σ(unit_count_max,固定行缺省 = unit_count) ≤ 4)
|
||||
var l2_mix_set: Array = _db.resolve_enemy_rowset(2, 5)
|
||||
var mix_shape_ok: bool = l2_mix_set.size() == 2 \
|
||||
and String(l2_mix_set[0].get("enemy_id", "")) == "bugbear" \
|
||||
and String(l2_mix_set[1].get("enemy_id", "")) == "giant_spider"
|
||||
check(mix_shape_ok,
|
||||
"首批混编行集 (2,5) = 双行且行序 [bugbear 重击手 → giant_spider 巢群](R6 行序契约——文件序 = 声明序 = 生成序,首行默认目标 = 前排坦克;迭代 18 卡⑤投放)")
|
||||
var mix_sum_max := 0
|
||||
for r in l2_mix_set:
|
||||
mix_sum_max += int(r.get("unit_count_max", int(r.get("unit_count", 1))))
|
||||
check(mix_sum_max <= 4,
|
||||
"首批混编行集 (2,5) 静态最坏骰和 = Σ(unit_count_max,固定行缺省=unit_count) = %d ≤ 4(行集实例总数守卫同口径——重击手固定 1 + 巢群 [2,3])" % mix_sum_max)
|
||||
check(int(l2_mix_set[1].get("unit_count", 0)) == 2 and int(l2_mix_set[1].get("unit_count_max", 0)) == 3 \
|
||||
and int(l2_mix_set[1].get("hp", 0)) == 26 and int(l2_mix_set[1].get("armor_class", -1)) == 2,
|
||||
"首批混编新行 (2,5,giant_spider) 行值 = 复制 (2,6) 巢群行(P4 甲零数值新增——2-3 只/hp 26/atk [1,2]/light/ac 2;既有 19 行现值零变更)")
|
||||
# ---- 第三关内容批(2026-09-20)L3 灰矮人矿城断言段 ----
|
||||
# ⑧ L3 行集结构(复用 L2 九节点图模板——6 战 + Boss + 奖励 + 恢复,真实岔路 4 处)
|
||||
var l3 := {}
|
||||
@@ -3635,7 +3652,7 @@ func _smoke_level_graph() -> void:
|
||||
_db.enemy.rows.remove_at(_db.enemy.rows.size() - 1)
|
||||
_db.enemy.rows.remove_at(_db.enemy.rows.size() - 1)
|
||||
_db.enemy.rows.remove_at(_db.enemy.rows.size() - 1)
|
||||
check(int(_db.enemy.rows.size()) == 19, "混编断言段注入行全量还原(表回 19 行——后续断言面零污染)")
|
||||
check(int(_db.enemy.rows.size()) == 20, "混编断言段注入行全量还原(表回 20 行——首批混编投放后基线行数,迭代 18 卡⑤;后续断言面零污染)")
|
||||
|
||||
|
||||
# 冒烟隔离用全新 RngService(同 master 种子——回放确定性纪律)
|
||||
|
||||
Reference in new issue
Block a user