refactor(t9): 迭代20 V13 静态核查收口——四处旧件名 source_class 中性名换代(fx_overflow/fx_apply_status/fx_blast_counter/fx_streak_segments;泛用通道保留+旧件名随退役件摘除,对照注释留痕)
This commit is contained in:
1 parent
3333187351
commit
710d8e038d
4 files changed
+17
-8
No files matched your search
@@ -560,3 +560,8 @@ Godot_v4.7.2-stable_win64_console.exe --headless --path . --script res://smoke/a
|
||||
## 2026-10-10 秘宝匣改名(文档面同步——2026-10-10 天赋树设计会话裁)
|
||||
|
||||
营地柜台「道具工坊」正名「秘宝匣」(树上解锁节点与营地柜台同名):本文档现行正文扫改完毕;**代码标识符(workshop_items 等)与界面文案暂未动**——柜台 UI 名/表行语义连带面归 design/gdd/06-待办清单.md「天赋树结构重构批」实装批办理。
|
||||
|
||||
## 2026-10-11 专长实装批(迭代 20——奇物重设计 T0-T10 全落)
|
||||
|
||||
**换代面**:feats.tres 整表换代(旧 27 件退役→重设计 29 行=基础 27+迁入淬毒刃纹/封印爆裂——订阅行 on/when/do 四级 rarity+cap);效果引擎词表扩签(事件 18/效果类型 30/事实 18/算子 +mod_eq——heal/ac_bonus/damage_reduce/bonus_delta/blast_scaled/preview_area/target_attack_bonus 七新类型+adventure 域计数器跨战账本);池结构案D(四级档位 70/25/9/0=104+曝光槽 2+1+概率上限解耦案②+Boss 按档配比加权抽取);凭证五件入池(刷新券 F-1 修复/储备金袋/同调电池〔choose_battery_target 玩家点选〕/时沙/完美保险);流派标签/档位激活机制退役(FeatsEngine 求值摘除——HUD 特性段降级为逐件行,呈现改法归 06 在册奇物呈现条)。
|
||||
**验证**:冒烟 864/0+run_all 21 套+probe_gate 全绿;MC 同种子重放 30 局逐位复现;新基线 normal/off 100 局通关 0%(master 对照同为 0%=零配基线本相,止步分布 90/10→93/7 可归因曝光槽)。设计权威=奇物.md(反哺点清单见 design/qa/iter20-实现报告-2026-10-11.md)。
|
||||
@@ -743,8 +743,9 @@ func _settle() -> void:
|
||||
var mg_layers := _fx.counter(String(h.get("per", "")))
|
||||
var mg_total := int(h.get("value", 0)) * mg_layers
|
||||
if mg_total > 0:
|
||||
var mg_t := _damage.open_ticket(DamageController.KIND_BOARD_BLAST, "feat_magma_body",
|
||||
"熔火反噬 ×%d" % mg_layers, "board", mg_total,
|
||||
# 迭代 20 T9——source_class 中性名(旧件名 feat_magma_body 随熔火之躯退役;per-counter 反打通道保留泛用面)
|
||||
var mg_t := _damage.open_ticket(DamageController.KIND_BOARD_BLAST, "fx_blast_counter",
|
||||
"积层反噬 ×%d" % mg_layers, "board", mg_total,
|
||||
DamageController.TARGET_ALL_ALIVE, ri, minesweeper.hero_pos(), "", 0, "", {})
|
||||
_submit(mg_t, false)
|
||||
for h in re_fx:
|
||||
@@ -1255,8 +1256,9 @@ func _combat_segment(ri: int) -> void:
|
||||
for h in _hits_of(ht.context.get("fx_attack_hits", []) as Array, "attack_segments"):
|
||||
var segments := mini(int(h.get("cap", 2)), _damage.dig_streak / maxi(1, int(h.get("divisor", 3))))
|
||||
for s in segments:
|
||||
var ct := _damage.open_ticket(DamageController.KIND_BOARD_TYPED, "feat_chain_arrows",
|
||||
"连珠矢", "board", int(h.get("value", 0)), DamageController.TARGET_FRONT_ALIVE, ri,
|
||||
# 迭代 20 T9——source_class 中性名(旧件名 feat_chain_arrows 随连珠矢退役;attack_segments 兑付通道保留泛用面)
|
||||
var ct := _damage.open_ticket(DamageController.KIND_BOARD_TYPED, "fx_streak_segments",
|
||||
"连击分段", "board", int(h.get("value", 0)), DamageController.TARGET_FRONT_ALIVE, ri,
|
||||
minesweeper.hero_pos(), "pierce")
|
||||
_damage.submit(ct)
|
||||
# 敌方行动(敌人技能池批——本拍动作开轮已摇定,此处按技能行兑现;行序 = 生成序)。
|
||||
|
||||
@@ -391,8 +391,9 @@ func _resolve_hero_attack(t: Dictionary) -> void:
|
||||
continue
|
||||
var next_target = units.default_target()
|
||||
if next_target != null:
|
||||
var of_t := open_ticket(DamageController.KIND_BOARD_TYPED, "feat_pierce_shot",
|
||||
"贯穿射击", "board", maxi(int(db.settlement.damage_floor), int(landed * int(h.get("value", 50)) / 100)),
|
||||
# 迭代 20 T9——source_class 中性名(旧件名 feat_pierce_shot 随贯穿射击退役;overflow 通道保留泛用面)
|
||||
var of_t := open_ticket(DamageController.KIND_BOARD_TYPED, "fx_overflow",
|
||||
"贯穿弹射", "board", maxi(int(db.settlement.damage_floor), int(landed * int(h.get("value", 50)) / 100)),
|
||||
DamageController.TARGET_FRONT_ALIVE, int(t.round_index), t.origin_cell, "pierce")
|
||||
if policy == POLICY_SEGMENT:
|
||||
_queue.append(of_t)
|
||||
@@ -402,7 +403,8 @@ func _resolve_hero_attack(t: Dictionary) -> void:
|
||||
# 重复授予由状态容器自行守卫)
|
||||
for h in ac_hits:
|
||||
if String(h.get("kind", "")) == "apply_status":
|
||||
effects.apply_effect(String(h.get("status_id", "")), {"source_class": "feat_armor_crack"}, -1)
|
||||
# 迭代 20 T9——source_class 中性名(旧件名 feat_armor_crack 随碎甲震击退役;apply_status 通道保留泛用面)
|
||||
effects.apply_effect(String(h.get("status_id", "")), {"source_class": "fx_apply_status"}, -1)
|
||||
payload["cracked"] = true
|
||||
var label := _attack_label(String(t.display), crit, discount)
|
||||
if hero_rider > 0:
|
||||
|
||||
@@ -2980,7 +2980,7 @@ func _smoke_settlement_segments() -> void:
|
||||
var rw: Dictionary = rows_r[i]
|
||||
var sc := String(rw.get("source_class", ""))
|
||||
var is_board_acct: bool = (String(rw.get("type", "")) == "damage" \
|
||||
and not ["hero_attack", "enemy_action", "feat_chain_arrows"].has(sc)) \
|
||||
and not ["hero_attack", "enemy_action", "fx_streak_segments"].has(sc)) \
|
||||
or String(rw.get("forfeit", "")) == "hero_down"
|
||||
if not is_board_acct:
|
||||
continue
|
||||
|
||||
Reference in new issue
Block a user