全局作用域变异首发批 T1-T4 核心面(迭代14③号卡):variation_table 词表扩 resource_face/always+互锁三条(resource_face⇔global、global⇒any+always)+effect_value 域[0,50](不适用 flat_damage[1,9]);variation.tres +skewed_veins 贫矿脉行(scope=global/unlock_level=2/board_types∅通配/投值30 provisional);config_db variant_pool 扩节点身份第三参(global行仅boss/elite入池,缺省双参跳过零扰动)+global_variant_row 决议访问器;board_data +board_variants 板级承载;battle_orchestrator 装板序 _resolve_global_variant 前置于 roll_board(数据依赖:偏斜旋钮先于摇号定型;全局取用确定性零取号)+_place_variants 替换制早退(boss图恰一行板级变异+零region格;池空回落region=兜底;普通图路径零diff);reward_economy +board_skew 旋钮+_skewed_cell_rows 整数最大余数投影(生存族按v%下调·进攻族等比上浮·白名单豁免·合计守恒77·off态直通零扰动)+_biased_cell_rows 基座换源=合成序图级先件级后

This commit is contained in:
DKChan committed 2026-10-04 17:52:01 +08:00
1 parent 9f64456fcd
commit fcb95f2d5a
6 files changed
+182 -5

No files matched your search

+19 -1
View File
@@ -197,10 +197,16 @@ func resolve_difficulty_modifiers(L: int, D: int) -> Dictionary:
# ---- 地形变异 variant_pool_gate:候选池门控(∅ board_types = 通配;2026-09-19 用户裁定字段名对齐
# board_type 词表——biome_tags 系旧观念残留退役)----
# 门控第三维 = 节点身份(全局作用域变异首发批 2026-10-04):scope=global 行仅 boss/elite 节点入池,
# 其余节点(battle 等)静默跳过——门控兜底 P0 口径(零报错零警告);elite 系前向词位(首发零表行)。
# node_type 缺省 "" = 旧双参调用口径(global 行跳过)——既有测试/冒烟调用零扰动。
func variant_pool(level_index: int, board_type: String) -> Array:
func variant_pool(level_index: int, board_type: String, node_type: String = "") -> Array:
var pool: Array[Dictionary] = []
for row in variation.rows:
if String(row.get("scope", "region")) == "global" \
and node_type != "boss" and node_type != "elite":
continue
if int(row.get("unlock_level", 999)) > level_index:
continue
var tags: Array = row.get("board_types", [])
@@ -212,6 +218,18 @@ func variant_pool(level_index: int, board_type: String) -> Array:
return pool
# 全局型单行决议(战斗编排装板期消费——访问器纪律:消费面禁直扫表):
# boss/elite 节点取候选池内首个 scope=global 行(首发批全局池恒恰一行;多行为配置越界态,
# 按表序取首行确定性兜底);空 = 无全局型(调用方回落 region 布置——兜底回落合法态)
func global_variant_row(level_index: int, board_type: String, node_type: String) -> Dictionary:
if node_type != "boss" and node_type != "elite":
return {}
for row in variant_pool(level_index, board_type, node_type):
if String(row.get("scope", "region")) == "global":
return row
return {}
func status_effect_row(effect_id: String) -> Dictionary:
return status_effects.row_by_id(effect_id)