From 43b1306c1c913be0c086a7256b62d3025d15fcf1 Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Wed, 7 Oct 2026 06:35:44 +0800 Subject: [PATCH] =?UTF-8?q?=E2=91=A4T4:=20=E6=96=AD=E8=A8=80=E9=9D=A2?= =?UTF-8?q?=E9=9A=8F=E8=BF=81=E9=A6=96=E6=89=B9=E6=B7=B7=E7=BC=96=E6=8A=95?= =?UTF-8?q?=E6=94=BE=E2=80=94=E2=80=94expect=5Fpools=20=E5=A2=9E=20(2,5,gi?= =?UTF-8?q?ant=5Fspider)=20=E6=B1=A0=E6=A8=A1=E6=9D=BF=E6=9D=A1=E7=9B=AE?= =?UTF-8?q?=EF=BC=88=E9=94=AE=3D=E5=8D=A1=E2=91=A0=20(L,D,enemy=5Fid)=20?= =?UTF-8?q?=E4=B8=89=E5=85=83=E5=8F=A3=E5=BE=84=EF=BC=89+=E6=B1=A0?= =?UTF-8?q?=E6=96=87=E6=A1=88=E5=8D=81=E4=B9=9D=E8=A1=8C=E2=86=92=E4=BA=8C?= =?UTF-8?q?=E5=8D=81=E8=A1=8C=E5=B9=B6=E6=B3=A8=E9=A6=96=E6=89=B9=E6=8A=95?= =?UTF-8?q?=E6=94=BE=20(2,5)=20=E5=8F=8C=E8=A1=8C+=E6=B7=B7=E7=BC=96?= =?UTF-8?q?=E6=96=AD=E8=A8=80=E6=AE=B5=E8=BF=98=E5=8E=9F=E6=96=AD=E8=A8=80?= =?UTF-8?q?=2019=E2=86=9220=20=E8=A1=8C=EF=BC=9B=E2=91=A6b=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E4=B8=89=E6=96=AD=E8=A8=80=EF=BC=9A(2,5)=20=E5=8F=8C?= =?UTF-8?q?=E8=A1=8C=E8=A1=8C=E5=BA=8F=20[bugbear=E2=86=92giant=5Fspider]?= =?UTF-8?q?=EF=BC=88R6=20=E8=BF=90=E8=A1=8C=E9=9D=A2=EF=BC=89/=E9=9D=99?= =?UTF-8?q?=E6=80=81=E6=9C=80=E5=9D=8F=E9=AA=B0=E5=92=8C=20=CE=A3=E2=89=A4?= =?UTF-8?q?4=EF=BC=88=E5=AE=88=E5=8D=AB=E5=90=8C=E5=8F=A3=E5=BE=84?= =?UTF-8?q?=EF=BC=89/=E6=96=B0=E8=A1=8C=E8=A1=8C=E5=80=BC=3D=E5=A4=8D?= =?UTF-8?q?=E5=88=B6=20(2,6)=20=E5=B7=A2=E7=BE=A4=E8=A1=8C=EF=BC=88P4=20?= =?UTF-8?q?=E7=94=B2=E9=9B=B6=E6=95=B0=E5=80=BC=E6=96=B0=E5=A2=9E=EF=BC=89?= =?UTF-8?q?=EF=BC=9B=E9=A6=96=E9=81=87=E4=BD=8D=E6=96=AD=E8=A8=80=20(2,4)?= =?UTF-8?q?=20=E6=81=B0=E4=B8=80=E8=A1=8C=E8=AF=AD=E4=B9=89=E9=9B=B6?= =?UTF-8?q?=E8=A7=A6=E7=A2=B0=E5=A4=8D=E6=A0=B8=E7=BB=BF=EF=BC=9B=E8=BD=BB?= =?UTF-8?q?=E9=97=B8=20814/0=20=E4=B8=89=E9=97=B8=E5=85=A8=E8=BF=87?= =?UTF-8?q?=EF=BC=88=E5=9F=BA=E7=BA=BF=20811/0+3=20=E6=96=B0=E6=96=AD?= =?UTF-8?q?=E8=A8=80=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game/smoke/smoke_all.gd | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/game/smoke/smoke_all.gd b/game/smoke/smoke_all.gd index 6fea2ccd..4bf08e32 100644 --- a/game/smoke/smoke_all.gd +++ b/game/smoke/smoke_all.gd @@ -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 种子——回放确定性纪律)